I concluded that this must be because of a race condition, in which the main thread is reading the Progress node created by a worker thread. Printing the contents of calibrateHandEye.result() reveals that the Progress node is not created until some time has passed:
I noticed a sporadic crash because the Progress node did not exist during hand-eye calibration. This was with a virtual camera.
Cause
During hand-eye calibration, the following code is executed
I concluded that this must be because of a race condition, in which the main thread is reading the Progress node created by a worker thread. Printing the contents of
calibrateHandEye.result()
reveals that the Progress node is not created until some time has passed:Fix
I stopped sending feedback until the Progress node is created. The action is still preemtable as before.
Setup