Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use a non-GC allocator for s_threadObjects to avoid potential deadlock.
The original deadlock situation that this change avoids: Thread 1: GC collection (GC lock taken) -> Libevent2Object.~this -> Libevent2Driver.unregisterObject -> synchronized(s_threadObjectsMutex) Thread 2: Libevent2Driver.registerObject -> synchronized(s_threadObejctsMutex) -> s_threadObjects.insert -> GC allocate -> acquire GC lock Sidenote: ArraySet should be replaced by HashMap for efficiency reasons.
- Loading branch information