mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 06:44:16 +01:00
a13a636c74
The function trx_purge_stop() was calling os_event_reset(purge_sys->event) before calling rw_lock_x_lock(&purge_sys->latch). The os_event_set() call in srv_purge_coordinator_suspend() is protected by that X-latch. It would seem a good idea to consistently protect both os_event_set() and os_event_reset() calls with a common mutex or rw-lock in those cases where os_event_set() and os_event_reset() are used like condition variables, tied to changes of shared state. For each os_event_t, we try to document the mutex or rw-lock that is being used. For some events, frequent calls to os_event_set() seem to try to avoid hangs. Some events are never waited for infinitely, only timed waits, and os_event_set() is used for early termination of these waits. os_aio_simulated_put_read_threads_to_sleep(): Define as a null macro on other systems than Windows. TODO: remove this altogether and disable innodb_use_native_aio on Windows. os_aio_segment_wait_events[]: Initialize only if innodb_use_native_aio=0. log_write_flush_to_disk_low(): Invoke log_mutex_enter() at the end, to avoid race conditions when changing the system state. (No potential race condition existed before MySQL 5.7.) |
||
---|---|---|
.. | ||
ut0byte.cc | ||
ut0crc32.cc | ||
ut0dbg.cc | ||
ut0list.cc | ||
ut0mem.cc | ||
ut0new.cc | ||
ut0rbt.cc | ||
ut0rnd.cc | ||
ut0timer.cc | ||
ut0ut.cc | ||
ut0vec.cc | ||
ut0wqueue.cc |