Fw: Some questions on reentrancy, __DYNAMIC_REENT__ and _impure_ptr

Dave Nadler drn@nadler.com
Fri Apr 2 18:35:49 GMT 2021

Sorry if I was not clear: If you use one memory location for _impure_ptr,
and you have two processors running two threads, this does not work.
Instead an alternate mechanism (ie thread-local storage for this ptr) is 
to support each concurrent thread with a separate reentrancy structure.
Hope I was clear this time!
Best Regards, Dve

On 4/2/2021 12:51 PM, C Howland via Newlib wrote:
>> ------------------------------
>> *From:* Newlib <newlib-bounces@sourceware.org> on behalf of Dave Nadler <
>> drn@nadler.com>
>> *Sent:* Friday, April 2, 2021 7:34 AM
>> *To:* Nick <cl26@nicolachel.net>
>> *Cc:* newlib@sourceware.org <newlib@sourceware.org>
>> *Subject:* Re: Some questions on reentrancy, __DYNAMIC_REENT__ and
>> _impure_ptr
>> Thanks Jeff also for answering the mutex question I missed.
>> One other issue I should have mentioned that becomes more important daily:
>> If there are multiple processors the simple _impure_ptr mechanism won't
>> work...
> Well, if you ignore the fact you have multiple processors and do nothing
> about it, then, sure, you'll have problems.  But if you manage it (e.g.
> treating each processor as its own thread, or as independent of each other,
> etc.), then multiple processors can work fine.  (I have such systems
> working.)
> Craig

Dave Nadler, USA East Coast voice (978) 263-0097, drn@nadler.com, Skype

More information about the Newlib mailing list