[RFC]: Thread safety in __sfp and atexit

Jeff Johnston jjohnstn@redhat.com
Mon Jan 19 22:04:00 GMT 2004


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.




More information about the Newlib mailing list