
Ed Suominen wrote:
Glyph wrote:
syncbridge looks like an interesting module. I've often wanted to do something similar, to have a "one right way" for integrating with non-async-clean legacy code which also doesn't necessarily support threaded concurrency either. [...]
Well of course, Glyph's "interesting module" comment was just enough of a table scrap to get me running, tail wagging furiously. The result (unit testing in progress) is a full-fledged SynchronousTasks object that runs a priority queue of synchronous tasks with niceness scheduling. See
* http://foss.eepatents.com/sAsync/browser/trunk/sasync/syncbridge.py * http://foss.eepatents.com/sAsync/browser/trunk/test/syncbridge.py
Once fully tested, would SynchronousTasks be considered as an addition to twisted.internet.threads?
Just scanned through that module and the idea looks useful to me too. In fact, AFAICT, it's basically the same technique I used for laxdb, <http://twistedmatrix.com/trac/browser/sandbox/mg/laxdb.py>. One small comment, and it's totally untested ... I don't think an already empty SynchronousQueue can be shutdown because nothing will wake the processing loop in _workOnTasks. - Matt -- __ / \__ Matt Goodall, Pollenation Internet Ltd \__/ \ w: http://www.pollenation.net __/ \__/ e: matt@pollenation.net / \__/ \ t: +44 (0)113 2252500 \__/ \__/ / \ Any views expressed are my own and do not necessarily \__/ reflect the views of my employer.