-
Kirill Smelkov authored
Previously libgolang was specifying its runtime, among other primitives, to provide semaphore implementation with acquire and release methods. The release should be non-blocking operation, and the acquire should be blocking until the semaphore is acquired. However for efficient implementation of timers, we will need to have semaphore acquire that can also be instructed to time out. -> Adjust thread and gevent runtimes to provide that and adjust runtime interface specification to require that. This is generally backward incompatible change, but given that there is just a few libgolang runtimes, it, hopefully, should not do any real breakage. So I think it is ok to do it this way. For the reference - contrary to runtimes - the public user API of libgolang and pygolang - that most of the pygolang users actually use - is not changed at all. In other words there is no backward-compatibility issue for regular pygolang/libgolang users because for them pygolang stays 100% backward compatible.
67936bdd