Revert "bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. (#1908)" (#3337)

This reverts commit e38d12ed34.
This commit is contained in:
Neil Schemenauer 2017-09-04 22:13:17 -07:00 committed by GitHub
parent e38d12ed34
commit db564238db
5 changed files with 1 additions and 75 deletions

View file

@ -1185,7 +1185,6 @@ class BufferedWriter(_BufferedIOMixin):
self.buffer_size = buffer_size
self._write_buf = bytearray()
self._write_lock = Lock()
_register_writer(self)
def writable(self):
return self.raw.writable()
@ -2575,26 +2574,3 @@ class StringIO(TextIOWrapper):
def detach(self):
# This doesn't make sense on StringIO.
self._unsupported("detach")
# ____________________________________________________________
import atexit, weakref
_all_writers = weakref.WeakSet()
def _register_writer(w):
# keep weak-ref to buffered writer
_all_writers.add(w)
def _flush_all_writers():
# Ensure all buffered writers are flushed before proceeding with
# normal shutdown. Otherwise, if the underlying file objects get
# finalized before the buffered writer wrapping it then any buffered
# data will be lost.
for w in _all_writers:
try:
w.flush()
except:
pass
atexit.register(_flush_all_writers)