Using enum to specify monitor enter options
Fixed monitor_wait bug
Enforcing mutual exclusion on monitor_signal