Files @ dc1ed8ff56ef
Branch filter:

Location: OneEye/overview.md - annotation

Laman
cleaned up and documented shutdown
Processes and threads
=====================

Processes communicate through MsgQueues (a wrapper around multiprocessing.Queue).
Each owns one incoming and holds any number of outcoming queues.
The queue runs in one thread, reads messages and calls handlers on its owner.

A shutdown is initiated by closing the GUI.
It closes its MsgQueue and exits its mainloop.
End of GUI process is waited on by the Core.
It follows by sending VideoCapture process an "shutdown" order and then waits on its end.
The VideoCapture closes its MsgQueue and sets its main loop for a break with its _shutdown attribute.
Finally the Core closes its MsgQueue and exits. 

Core
----
* Main process, starts GUI and VideoCapture. Waits for them to finish.
* Runs ImageAnalyzer and StateBag.
* Messages API:
	* putFrame(frame)
	* setParams(params)
	* fetchFrame(key)
	* fetchParams(params)

GUI
---
* Presents data for the user, handles user input.

VideoCapture
------------
* Consumes a video stream, sending captured frames to Core.