We spawn one thread per axis, and my app doesn’t (currently) have any notion of a defunct axis, so it does it for the two “non-axes” of the second multi-axis drive. The interrupt threads loop, waiting with timeout values, and they check for an “abort” signal before waiting again. Each axis wrapper is supposed to stop its threads in its destructor, some time before the MotionController object gets ::Destroy()
ed, but this is running on a customer machine where I cannot easily attach with a debugger to investigate.
Thanks for the symptom explanation.