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 @@ -361,11 +361,20 @@ def cleanup(self) -> None:
361361 # The process did not exit after 5 seconds, so kill it.
362362 self ._send_signal (signal .SIGKILL )
363363
364+ # Ensure logs have finished writing
365+ self .log_thread .join ()
366+
367+ # Sync filesystems after run finishes
368+ os .sync ()
369+
364370 def close (self ) -> None :
365371 self .cleanup ()
366372 MQTT_SETTINGS .extra_data ["run_uuid" ] = "" # Reset the run UUID
367373 LED_CONTROLLER .set_status (LedStatus .NoUSB )
368374 LED_CONTROLLER .set_code (False )
375+
376+ # Explicitly close handler before removing it
377+ self .handler .close ()
369378 USERCODE_LOGGER .removeHandler (self .handler )
370379 MQTT_SETTINGS .active_usercode = None
371380
@@ -404,6 +413,9 @@ def _setup_logging(self, log_dir: str) -> None:
404413 os .path .join (log_dir , LOG_NAME ),
405414 mode = 'w' , # Overwrite the log file
406415 )
416+ # Write through to avoid buffering the log file since the USB might be
417+ # removed at any time
418+ self .handler .stream .reconfigure (write_through = True )
407419 REL_TIME_FILTER .reset_time_reference () # type: ignore[union-attr]
408420 self .handler .setFormatter (TieredFormatter (
409421 fmt = '[%(reltime)08.3f - %(levelname)s] %(message)s' ,
You can’t perform that action at this time.
0 commit comments