File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -283,10 +283,19 @@ def cleanup(self) -> None:
283
283
# The process did not exit after 5 seconds, so kill it.
284
284
self ._send_signal (signal .SIGKILL )
285
285
286
+ # Ensure logs have finished writing
287
+ self .log_thread .join ()
288
+
289
+ # Sync filesystems after run finishes
290
+ os .sync ()
291
+
286
292
def close (self ) -> None :
287
293
self .cleanup ()
288
294
LED_CONTROLLER .set_status (LedStatus .NoUSB )
289
295
LED_CONTROLLER .set_code (False )
296
+
297
+ # Explicitly close handler before removing it
298
+ self .handler .close ()
290
299
USERCODE_LOGGER .removeHandler (self .handler )
291
300
292
301
def _send_signal (self , sig : int ) -> None :
@@ -321,6 +330,9 @@ def _setup_logging(self, log_dir: str) -> None:
321
330
os .path .join (log_dir , LOG_NAME ),
322
331
mode = 'w' , # Overwrite the log file
323
332
)
333
+ # Write through to avoid buffering the log file since the USB might be
334
+ # removed at any time
335
+ self .handler .stream .reconfigure (write_through = True )
324
336
REL_TIME_FILTER .reset_time_reference () # type: ignore[union-attr]
325
337
self .handler .setFormatter (TieredFormatter (
326
338
fmt = '[%(reltime)08.3f - %(levelname)s] %(message)s' ,
You can’t perform that action at this time.
0 commit comments