Is LJM thread-safe?
LJM is thread-safe. It synchronizes devices between threads so that multiple threads can use the same device handle.
Applications using the same device handle in multiple threads still must coordinate the closing of device handles—if one application thread calls LJM_Close
for a given device handle, that device handle will be closed for all threads.
For applications that need to stream data, LJM_SetStreamCallback is an easy way start a worker thread.
Other Remarks
For using LJM and the Python libraries multiprocessing
and Tkinter
on macOS: It matters when you import Tkinter
—you must import it after the multiprocessing
process(es) have started.