bug: fix TOCTOU test in queue put

This commit is contained in:
Michael Wei 2023-07-07 08:49:24 -07:00
parent 00b9a490bb
commit f23655e754

View File

@ -1026,10 +1026,7 @@ def process_frames(
bgr_frame, bgr_frame,
) )
# add to the queue if not full # add to the queue if not full
if detected_objects_queue.full(): try:
frame_manager.delete(f"{camera_name}{frame_time}")
continue
else:
fps_tracker.update() fps_tracker.update()
fps.value = fps_tracker.eps() fps.value = fps_tracker.eps()
detected_objects_queue.put( detected_objects_queue.put(
@ -1043,3 +1040,8 @@ def process_frames(
) )
detection_fps.value = object_detector.fps.eps() detection_fps.value = object_detector.fps.eps()
frame_manager.close(f"{camera_name}{frame_time}") frame_manager.close(f"{camera_name}{frame_time}")
except queue.Full:
logger.warn(
f"Dropping frame due to full queue for {camera_name} at {frame_time}"
)
frame_manager.delete(f"{camera_name}{frame_time}")