Lock problems in networktables #11
1 check passed
|
After a week of deep examination of our networktables implementation, I believe I've eliminated most (if not all) of the deadlocks present in the code. This pull request tried to remove any place where robot code might call into NetworkTables which would cause a lock to be held while making a network call, and restructure some things to be easier to understand. There were a few places in particular that I'd like to call out:
I setup some instrumentation to help debug this stuff. In particular, you can see the latency introduced when these deadlocks are present by just inserting a
I believe that these bugs affect Java & C++ implementations of NetworkTables also. |
This is the start of my investigation into possible lock problems with networktables in the face of delayed socket writes. There definitely are problems, so it's just a question of the best way to fix them before it hangs someone's robot.
Not going to merge this until the problems have been resolved.