[issue17852] Built-in module _io can loose data from buffered files at exit
Charles-François Natali
report at bugs.python.org
Sat Apr 27 14:41:35 CEST 2013
Charles-François Natali added the comment:
Code relying on garbage collection/shutdown hook to flush files is borked:
- it's never been guaranteed by the Python specification (neither does Java/C#...)
- even with an implementation based on C stdio streams, streams won't get flushed in case of _exit()/abort()/asynchronous signal
Furthermore, I think it's inherently unsafe: in a multi-threaded program, flushing requires locking, and doing this at shutdown is a recipe for deadlock/arbitrary delay (image you have a daemon thread currently holding the lock, e.g. for stdout).
In short, that's an application bug to me.
----------
nosy: +neologix
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue17852>
_______________________________________
More information about the Python-bugs-list
mailing list