Draft: Work on #66, trying to remove race conditions while classifying channels
- Oct 12, 2023
-
-
Jonathan Hanks authored
* Reworked how CA data is subscribed and consumed. * Removed the caTable, caConnTable, caConnEnumTable, caEvid arrays. * Added a single table caInputTable that is the only thing that the connection/subscription callbacks interact with. * Removed unused logic and mutexes around the caThreadState variable. Now the callbacks operate only on the caInputTable. This table is synced to the cdTable (main data table) once a cycle via the syncCAConnections call. Mutexes are not held while creating CA channels or subscriptions. Fine grained locking is being used (per PV).
-
- Oct 10, 2023
-
-
Jonathan Hanks authored
-
Jonathan Hanks authored
* Partial solution, the issue is ca_clear_subscription can rightfully call callbacks and lead to a deadlock * There are other areas that call ca_clear_subscription * not tested.
-