Removed unnecessary atomic reference
Interrupted threads signal any waiting threads
Added back timeout for locking
Added back timeout for upgrading
Added timeouts to randomized test
Added underscores to time literals