this should flatMap with acquiring with s as well, I think (the AsyncSemaphore)