Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
Description
The os0thread.cc module unnecessarily defines non-inlined function call wrappers for trivial operations.
os_thread_pf() simply casts the argument to a different type, and it should not exist at all.
The functions os_thread_eq(), os_thread_yield(), os_thread_get_curr_id() are better defined as macros that refer to the Microsoft Windows and POSIX interfaces.
Because os_thread_get_curr_id() is being invoked in locking code, this simplification could slightly improve performance.
For some reason, this change was causing assertion failures in the InnoDB rw_lock_t code on Windows. Hence, I restored os_thread_eq(), os_thread_yield(), os_thread_get_curr_id() as functions on Windows. Such failures were not observed in combination with
MDEV-24142.