assertBlockIsLockedForWriting throws exception if block is not locked | 1 ms | Passed |
basic lockNewBlockForWriting | 4 ms | Passed |
cannot grab a writer lock while already holding a write lock | 2 ms | Passed |
downgrade lock | 1 ms | Passed |
get non-existent block | 1 ms | Passed |
initial memory usage | 1 ms | Passed |
lockNewBlockForWriting blocks while write lock is held, then returns false after release | 0.3 sec | Passed |
lockNewBlockForWriting blocks while write lock is held, then returns true after removal | 0.3 sec | Passed |
multiple tasks can hold read locks | 4 ms | Passed |
read locks are reentrant | 2 ms | Passed |
read locks will block writer | 0.3 sec | Passed |
releaseAllLocksForTask releases write locks | 2 ms | Passed |
removing a block causes blocked callers to receive None | 0.3 sec | Passed |
removing a block while holding only a read lock throws IllegalStateException | 2 ms | Passed |
removing a block without holding any locks throws IllegalStateException | 2 ms | Passed |
removing a non-existent block throws IllegalArgumentException | 2 ms | Passed |
single task can hold write lock | 2 ms | Passed |
write lock will block readers | 0.3 sec | Passed |