[PATCH 00/11] Decouple global file object list from _GLOBAL_REENT

Matthew Joyce <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
From: Matt Joyce <[email protected]>

The _GLOBAL_REENT structure maintains global information across threads,
including a global list of open file objects. This patch set aims to
decouple the global file object list from _GLOBAL_REENT, reducing dependency
on the structure.

This is accomplished by:

1) Simplifying stdio and __sglue initializations
2) Adding a dedicated stdio atexit handler
3) Adding a global __sglue object and removing __sglue from struct _reent for
   certain configurations

This effort will facilitate the future addition of a thread-local storage
configuration option as an alternative to using struct _reent.


Matt Joyce (9):
  Remove duplicate stdio initializations
  Remove duplicate sglue initializations
  Add two __sglue initialization macros
  Remove __sinit_locks / __sinit_recursive_mutex
  Move __sglue initializations to __sfp()
  Add CLEANUP_FILE define
  Add stdio atexit handler
  Add global __sglue object for all configurations
  Remove __sglue member for one configuration

Sebastian Huber (2):
  Declare global __sf[] only once
  stdio: Replace _fwalk_reent() with _fwalk_sglue()

 newlib/libc/include/sys/reent.h |  21 ++++--
 newlib/libc/reent/reent.c       |   6 +-
 newlib/libc/stdio/fcloseall.c   |   9 ++-
 newlib/libc/stdio/fflush.c      |   2 +-
 newlib/libc/stdio/findfp.c      | 112 +++++++++++++++++---------------
 newlib/libc/stdio/fwalk.c       |  15 +++--
 newlib/libc/stdio/local.h       |   6 +-
 newlib/libc/stdio/refill.c      |   4 +-
 newlib/libc/stdlib/exit.c       |   6 +-
 winsup/cygwin/signal.cc         |   5 +-
 winsup/cygwin/syscalls.cc       |   5 +-
 11 files changed, 110 insertions(+), 81 deletions(-)

-- 
2.31.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.