Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Currently in event handlers in JobDriver in Java bridge code, we have synchronized on the JobDriver.this, that makes the event handlers single threaded. Each handler will call to C# and then return back, then release the lock. It is not scaleble when there are many containers and many events.
We need to carefully look at each case to see if there is any shared data that need to be locked. If yes, we might need to only lock on the data. If not, we should be able to remove the synchronized in those handlers.
At C# side, in DriverBridge, we must make sure it is thread safe if we remove this synchronized line.
At C# user handlers, it is user driver's responsibility to make sure their shared data is thread safe.