|
Byron Ellacott
bje at apnic.net
Thu Feb 26 09:36:11 EST 2004
On Wed, 2004-02-25 at 23:36, Gregory (Grisha) Trubetskoy wrote:
> On Wed, 25 Feb 2004, vincent delft wrote:
> The problem is that in a multithreaded configuration, there is only one
> sys.stdout for multiple requests, so one thread cannot assign to it
> without affecting others :-)
Assuming there is some way to get the current thread, you /COULD/ do:
class tstdout:
def __init__(self):
self.threads = {}
def add_thread(self, thread_id, stream):
self.threads[thread_id] = stream
def write(self, data):
self.threads[current_thread_id()].write(data)
# Other methods of sys.stdout as appropriate
save = sys.stdout
sys.stdout = tstdout()
sys.stdout.add_thread(None, save)
There's not much good you can say about what this would do to
efficiency, though. :)
--
bje
|