Asynchrony is not concurrency. If you have to turn your code "inside out," (that is, if you have to write your code such that the library calls your code, rather than vice versa) it's very much *not* concurrency: it's just asynchrony.
While Twisted makes asynchronous code relatively easy to write and maintain, it's just not concurrency. I can't simply drop my single-threaded code into it and have it work, like I can with a truly concurrent system. Jeremy -- http://mail.python.org/mailman/listinfo/python-list