This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
Re: Newlib thread features.
J. Johnston wrote:
> Fabrice Gautier wrote:
>
>> Hi again,
>>
>> Does anybody has an answer for my question ?
>>
>> Fabrice Gautier wrote:
>>
>>> Hi,
>>>
>>> I would like to know if Newlib has thread support and/or if it is thread
>>> safe.
>>> It would like for use with uClinux.
>>
>> Thank you.
>>
>> --
>> Fabrice Gautier
>> Fabrice_Gautier@sdesigns.com
>
>
> Newlib is not fully thread-safe. It has special versions of routines that can be
> used to create a thread-safe program. These are the _r routines which take an additional
> parameter which is the reentrancy structure for that thread. A program must create
> a separate reentrancy structure per thread.
>
> One unprotected area is I/O. A program must take responsibility for protecting all
> access to files. In the case of storage allocation and environment variables, special
> mutex calls are made but the code for the mutex locks is generally not provided for
> most platforms. If you code these routines, then the two areas are subsequently protected.
I don't know if uCLinux does this but RTEMS also provides a per-thread
copy of the reentrancy structure and
switches newlib's pointer (impure_ptr) during context switches. This
covers a bit more of the code.
>
> -- Jeff J.
--
--
Joel Sherrill, Ph.D. Director of Research & Development
joel@OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985