use acquire instead of lock
update readme and examples