On Sunday, January 6, 2013, Nick Coghlan wrote:
On Sun, Jan 6, 2013 at 8:20 PM, Laurens Van Houtven email@example.com wrote:
When you say "high latency" (in __exit__), what does "high" mean? Is that order of magnitude what __exit__ usually means now, or network IO
(Use case: distributed locking and remotely stored locks: it doesn't
long time on network scales, but it can take a long time on CPU scales.)
The status quo can only be made to work for in-memory locks. If the release step involves network access, then it's closer to the "database transaction" use case, because the __exit__ method may need to block.
But you don't need to wait for the release. You can do that asynchronously.
Also, have you given the implementation of your 'yielding' proposal any thought yet?