mirror of
https://github.com/RGBCube/serenity
synced 2026-01-13 05:01:00 +00:00
This commit removes the usage of HashMap in Mutex, thereby making Mutex be allocation-free. In order to achieve this several simplifications were made to Mutex, removing unused code-paths and extra VERIFYs: * We no longer support 'upgrading' a shared lock holder to an exclusive holder when it is the only shared holder and it did not unlock the lock before relocking it as exclusive. NOTE: Unlike the rest of these changes, this scenario is not VERIFY-able in an allocation-free way, as a result the new LOCK_SHARED_UPGRADE_DEBUG debug flag was added, this flag lets Mutex allocate in order to detect such cases when debugging a deadlock. * We no longer support checking if a Mutex is locked by the current thread when the Mutex was not locked exclusively, the shared version of this check was not used anywhere. * We no longer support force unlocking/relocking a Mutex if the Mutex was not locked exclusively, the shared version of these functions was not used anywhere. |
||
|---|---|---|
| .. | ||
| Superbuild | ||
| all_the_debug_macros.cmake | ||
| code_generators.cmake | ||
| common_options.cmake | ||
| commonmark_spec.cmake | ||
| lagom-install-config.cmake | ||
| lagom_options.cmake | ||
| pnp_ids.cmake | ||
| serenity_components.cmake | ||
| serenity_options.cmake | ||
| time_zone_data.cmake | ||
| unicode_data.cmake | ||
| utils.cmake | ||
| wasm_spec_tests.cmake | ||