thread specific sys.stdout?

Peter Hansen peter at engcorp.com
Wed Sep 15 17:24:22 EDT 2004


Diez B. Roggisch wrote:

> You could replace sys.stdout by a class that splits the written text
> depending on the current thread. It might look roughly like this:
> 
> class ThreadPrinter:
>     def __init__(self):
>         _.fhs = {}
> 
>     def write(self, value):
>         f = _.fhs.get(threading.currentThread(),
> open(get_some_nice_file_name(), "w")
>         f.write(value)
>         _.fhs[threading.currentThread()] = f

Have you run this code?  It looks to me suspiciously as
though it will raise an exception on the second write
call in any given thread, as the non-shortcircuiting call
to .get() tries to open the nice_file in write mode for
a second time.

Also, what's "_" supposed to be here?  self?

-Peter



More information about the Python-list mailing list