public function testIfMutexIsReusableAfterSeveralAcquireReleaseCycles(LockInterface $lockImplementor)
{
$firstMutex = new Mutex('forfiter', $lockImplementor);
$firstMutex->acquireLock();
$firstMutex->releaseLock();
$firstMutex->acquireLock();
$firstMutex->releaseLock();
$secondMutex = new Mutex('forfiter', $lockImplementor);
$this->assertTrue($secondMutex->acquireLock());
// cleanup
$secondMutex->releaseLock();
}