The goal is to replace Mono's BCL implementation of System.Threading.EventWaitHandle, System.Threading.Mutex and System.Threading.Semaphore synchronization primitives by CoreRT ones. This would allow us to get closer to .NET Core code quality and behaviour.
System.Threading.EventWaitHandle – class allows threads to communicate with each other by signaling and by waiting for signals. Event wait handles are wait handles that can be signaled in order to release one or more waiting threads. After it is signaled, an event wait handle is reset either manually or automatically.
System.Threading.Mutex – one of the synchronization primitive that is an implementation of synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution.
System.Threading.Semaphore – one of the synchronization primitive used to control access to a common resource by multiple processes in a concurrent system such as a multiprogramming operating system.