@@ -196,7 +196,7 @@ bufferediobase_write(PyObject *self, PyObject *args)
196196}
197197
198198
199- typedef struct _buffered {
199+ typedef struct {
200200 PyObject_HEAD
201201
202202 PyObject * raw ;
@@ -240,18 +240,8 @@ typedef struct _buffered {
240240
241241 PyObject * dict ;
242242 PyObject * weakreflist ;
243-
244- /* a doubly-linked chained list of "buffered" objects that need to
245- be flushed when the process exits */
246- struct _buffered * next , * prev ;
247243} buffered ;
248244
249- /* the actual list of buffered objects */
250- static buffered buffer_list_end = {
251- .next = & buffer_list_end ,
252- .prev = & buffer_list_end
253- };
254-
255245/*
256246 Implementation notes:
257247
@@ -396,15 +386,6 @@ _enter_buffered_busy(buffered *self)
396386 (self->buffer_size * (size / self->buffer_size)))
397387
398388
399- static void
400- remove_from_linked_list (buffered * self )
401- {
402- self -> next -> prev = self -> prev ;
403- self -> prev -> next = self -> next ;
404- self -> prev = NULL ;
405- self -> next = NULL ;
406- }
407-
408389static void
409390buffered_dealloc (buffered * self )
410391{
@@ -413,8 +394,6 @@ buffered_dealloc(buffered *self)
413394 return ;
414395 _PyObject_GC_UNTRACK (self );
415396 self -> ok = 0 ;
416- if (self -> next != NULL )
417- remove_from_linked_list (self );
418397 if (self -> weakreflist != NULL )
419398 PyObject_ClearWeakRefs ((PyObject * )self );
420399 Py_CLEAR (self -> raw );
@@ -1838,33 +1817,10 @@ _io_BufferedWriter___init___impl(buffered *self, PyObject *raw,
18381817 self -> fast_closed_checks = (Py_TYPE (self ) == & PyBufferedWriter_Type &&
18391818 Py_TYPE (raw ) == & PyFileIO_Type );
18401819
1841- if (self -> next == NULL ) {
1842- self -> prev = & buffer_list_end ;
1843- self -> next = buffer_list_end .next ;
1844- buffer_list_end .next -> prev = self ;
1845- buffer_list_end .next = self ;
1846- }
1847-
18481820 self -> ok = 1 ;
18491821 return 0 ;
18501822}
18511823
1852- /*
1853- * Ensure all buffered writers are flushed before proceeding with
1854- * normal shutdown. Otherwise, if the underlying file objects get
1855- * finalized before the buffered writer wrapping it then any buffered
1856- * data will be lost.
1857- */
1858- void _PyIO_atexit_flush (void )
1859- {
1860- while (buffer_list_end .next != & buffer_list_end ) {
1861- buffered * buf = buffer_list_end .next ;
1862- remove_from_linked_list (buf );
1863- buffered_flush (buf , NULL );
1864- PyErr_Clear ();
1865- }
1866- }
1867-
18681824static Py_ssize_t
18691825_bufferedwriter_raw_write (buffered * self , char * start , Py_ssize_t len )
18701826{
0 commit comments