Another step towards portable Promise.

Now it depends only on the JVM semaphore.