Unfortunately I don't have the code at hand on this box, but maybe someone can give me a nudge in the right direction.
Some background: Last year I began to write a jukebox system that provided a Telnet-like interface. I wrote this using "socket". Later along the path I discovered Twisted, and due to various other problems, a re-write made sense. So I decided to use Twisted. The only thing I adapted was the class providing the telnet interface. In the background I use a few other threads. One for metadata-scanning, one for assuring continuous playback (periodic checks the player status and appends songs if necessary) and in the case the shoutcast backend is activated, there is also a built-in player thread. I remember having it running already, but I don't remember if it was before I started to use Twisted or after. Well, I beleive the problem lies withing the last named thread. This one uses shoutpy to stream data to the shoutcast server. What I found is that "libshout" is blocking, which should be fine as the whole thing runs in it's separate thread. But the application hangs nevertheless while streaming. This effectively blocks out the other thread that checks the player status, which then fails to append new songs to the queue. So only one song is played when streaming. I saw that there is another package called "python-shout". But neither that nor "shoutpy" have any comprehensive documentation which might tell me anything about the libshout blocking problem. The documentation of libshout revealed a "non-blocking" mode, but even though I made the necessary adjustments to the code, I still had the same problem. The other threads in my application run fine and don't block the rest of the app. So I guess, that the main problem is that blocking occurs "outside" the python world and "inside" the libshout world. Maybe the combination of all this with Twisted is an unlucky marriage but I would be disappointed to be told: "Nope, won't be possible" Maybe Twisted's deferreds to the rescue? I don't know... I'm still quite green with Twisted ;) -- http://mail.python.org/mailman/listinfo/python-list