On master (e3fa3c7d671e34038a262bb2db16b30bee82153d) if the push_lock() throws the “potential deadlock detected” exception (via the potential_deadlock_detected() call), the LockData instance internal state differs from one when the push_lock() was called. This non-well behaviour makes (at least) testing brittle.
This PR preserves the LockData instance initial state if push_lock() throws an exception, and improves the sync_tests unit test.