This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ggenellina
Recipients fabioz, ggenellina, pitrou
Date 2008-12-26.23:03:21
SpamBayes Score 1.5444041e-06
Marked as misclassified No
Message-id <1230332603.03.0.910900048123.issue4716@psf.upfronthosting.co.za>
In-reply-to
Content
Yes, this is exactly the problem. The execution never goes beyond print
('here'); if you print frame.f_lineno you'll see it blocks at io.py 
line 1036, waiting for a Lock for the second time.

So the trace function cannot use print, not write to regular files 
(because io.py is written in Python). This is a severe limitation.

As a workaround, you can use the _fileio module (written in C):

import _fileio
f = _fileio._FileIO("output.txt", "w", True)

def tracing_func(frame, event, arg):
    f.write('%s %s %d\n' % (frame.f_code.co_filename, frame.f_code.co_
name, frame.f_lineno))
    return tracing_func

A possible fix would be to use an RLock instead of a Lock object, but 
I haven't investigated it.
History
Date User Action Args
2008-12-26 23:03:23ggenellinasetrecipients: + ggenellina, pitrou, fabioz
2008-12-26 23:03:23ggenellinasetmessageid: <1230332603.03.0.910900048123.issue4716@psf.upfronthosting.co.za>
2008-12-26 23:03:22ggenellinalinkissue4716 messages
2008-12-26 23:03:21ggenellinacreate