This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
Re: [RFC]: Thread safety in __sfp and atexit
- From: Jeff Johnston <jjohnstn at redhat dot com>
- To: Thomas Pfaff <tpfaff at gmx dot net>
- Cc: newlib at sources dot redhat dot com
- Date: Mon, 19 Jan 2004 17:03:59 -0500
- Subject: Re: [RFC]: Thread safety in __sfp and atexit
- References: <400C46CA.6000605@gmx.net>
Thomas Pfaff wrote:
The list operations in __sfp and atexit are not thread safe AFAICS.
This could be avoided by using a mutex or atomic instructions when a
FILE pointer is acquired or an atexit function is added.
The problem hereby is that such a mutex should be created on newlib
initialization (_REENT_INIT on the _impure_ptr for example), but there
might be better locations.
Doing list insert with atomic instructions on the other hand is easy
on i86 (i486 and above) but might be a problem on other platfomrs.
Comments are welcome.
Thomas
You can't assume atomic instructions exist for all platforms. I think
something akin to the ENV_LOCK. MALLOC_LOCK methods used by the getenv
and malloc family routines would be appropriate.
-- Jeff J.