|
Re: Call to PIDController::GetError() and ::OnTarget() locks program.
Sorry about the bug. There will be a fix posted shortly as soon as we finish fixing another issue with SmartDashboard.
Basically the problem is that the critical region uses a binary semaphore which blocks on multiple takes from the same thread. The code has a bunch of CRITICAL_REGIONS nested so it's hanging.
The fix was to replace the semaphore with a Mutual Exclusion semaphore which will block on multiple tasks trying to access the code, but not when the same task tries.
Brad
__________________
Brad Miller
Robotics Resource Center
Worcester Polytechnic Institute
|