Unbreak repository tests on OpenBSD (rework blob state machine)
@jasperla
Submitted by Jasper Lievisse Adriaanse Link to original bug (#734010)
Description
Created attachment 282111 Rework synchronization around a state machine
The 'repository' tests were failing on OpenBSD with a SIGABRT which led us to investigate the issue which seemed related to the strict mutex type on OpenBSD (unlocking an already locked mutex is forbidden). However, our "main threads developer" noticed several issues with the code surrounding it:
"Rework synchronization around a state machine instead of trying to treat
mutexes and condition variables like semaphores. Should reduce the
low-level locking operations and eliminates the attempt to lock a mutex in
one thread but unlock it another that violates POSIX requirements."
The attached patch fixes the issues described. OK to push?
Patch 282111, "Rework synchronization around a state machine":
0001-Rework-synchronization-for-blob-s-state-machine-effe.patch
Version: git master
Resolution: RESOLVED FIXED