Skip to content

MDAEngine threading mechanism #397

Answered by tlambert03
jacopoabramo asked this question in Q&A
Discussion options

You must be logged in to vote

as far as the existing MDAEngine that drives the CMMCore object, threading issues work like this:

  • MDARunner itself is single threaded and fully synchronous (*see detail about callback handlers below)
  • pymmcore_pus.mda.MDAEngine is also single threaded and fully synchronous (on the python side)
  • on the C++ side, CMMCore absolutely uses threads and coordinates the activity of multiple devices, and so calls made by MDAEngine into the C++ code may indeed result in threaded behavior. In my opinion, this is actually a big bonus of using CMMCore. It's all implemented at a pretty low/performant level, so many of the synchronous calls we make from the python/pymmcore side of things will result in c…

Replies: 2 comments 5 replies

Comment options

You must be logged in to vote
0 replies
Answer selected by jacopoabramo
Comment options

You must be logged in to vote
5 replies
@jacopoabramo
Comment options

@tlambert03
Comment options

@tlambert03
Comment options

@jacopoabramo
Comment options

@tlambert03
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants