Removed try_lock, as this is just an API implementation