awesome-async a lock that uses so easily lock + unlock whoever call the lock,they will return one by one wait + wake wait for the result which is given by the wake capture + share the first will do the hard job to capture the result,the others just wait for the sharing result