This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Mon, Jul 24, 2017 at 1:14 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote: >> Kind of, I guess. When you write that __exit_funcs_lock protects >> __exit_funcs, do you mean that it also protects the full list that this >> global points to? If so, please say that. > > Yes, Will do. Done. >> Does that fully remove the need for what looks like an (incorrect) >> attempt to build a concurrent list? > > Probably. Let me review these. I suspect they are no longer necessary. That is correct: the half-cooked atomic accesses are no longer necessary, since all modifications (and reads) now happen under the lock. I've removed them. 2017-07-31 Paul Pluzhnikov <ppluzhnikov@google.com> Ricky Zhou <rickyz@google.com> Anoop V Chakkalakkal <anoop.vijayan@in.ibm.com> [BZ #14333] * stdlib/cxa_atexit.c (__internal_atexit): Use __exit_funcs_lock. Remove atomics. (__new_exitfn): Fail registration when we finished at_exit processing. * stdlib/cxa_finalize.c (__cxa_finalize): Likewise. * stdlib/on_exit.c (__on_exit): Likewise. * stdlib/exit.c (__exit_funcs_done): New variable. (__run_exit_handlers): Use __exit_funcs_lock. * stdlib/exit.h (__exit_funcs_lock, __exit_funcs_done): New declarations. * stdlib/Makefile (test-atexit-race, test-quick_at_exit-race) (test-cxa_atexit-race): New tests. * stdlib/test-atexit-race-common.c: New. * stdlib/test-atexit-race.c: New. * stdlib/test-at_quick_exit-race.c: New. * stdlib/test-cxa_atexit-race.c: New. -- Paul Pluzhnikov
Attachment:
glibc-bz14333-20170731.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |