Asynchronous read / write lock implementation for Node.js