Drizzled Public API Documentation

drizzled::locking Namespace Reference

Functions

void broadcast_refresh (void)

Detailed Description

Broadcast COND_refresh and COND_global_read_lock.

Due to a bug in a threading library it could happen that a signal did not reach its target. A condition for this was that the same condition variable was used with different mutexes in pthread_cond_wait(). Some time ago we changed table::Cache::singleton().mutex() to LOCK_global_read_lock in global read lock handling. So COND_refresh was used with table::Cache::singleton().mutex() and LOCK_global_read_lock.

We did now also change from COND_refresh to COND_global_read_lock in global read lock handling. But now it is necessary to signal both conditions at the same time.

Note:
When signalling COND_global_read_lock within the global read lock handling, it is not necessary to also signal COND_refresh.