try nonblocking locking