public static bool bgl_condvar_wait(condvar c, mutex o) { lock( c ) { try { bgl_mutex_unlock( o ); Monitor.Wait(c); bgl_mutex_lock( o ); return true; } catch(Exception) { return false; } } }
public static bool bgl_condvar_timed_wait(condvar c, mutex o, int ms) { lock( c ) { try { bool res; bgl_mutex_unlock( o ); res = Monitor.Wait(c, ms); bgl_mutex_lock( o ); return res; } catch(Exception) { return false; } } }
public static Object BGL_CONDVAR_NAME(condvar o) { return o.name; }
public static bool bgl_condvar_signal(condvar c) { lock( c ) { Monitor.Pulse(c); } return true; }
public static bool bgl_condvar_broadcast(condvar c) { lock( c ) { Monitor.PulseAll(c); } return true; }