Re: Fw: Some questions on reentrancy, __DYNAMIC_REENT__ and _impure_ptr

Jeff Johnston via Newlib <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAOox84v77NuYQF9rBDuHTfkT+JuHD=4MYyo6MzJdcUBxJjF4DQ@mail.gmail.com>
Hi Dave,

Yes, you can't use a single _impure_ptr for multiple threads.  You need to
either switch the value between threads or use __getreent() to get thread
local storage.

-- Jeff J.

On Fri, Apr 2, 2021 at 2:36 PM Dave Nadler <[email protected]> wrote:

> 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
> needed,
> to support each concurrent thread with a separate reentrancy structure.
> Hope I was clear this time!
> Thanks,
> Best Regards, Dve
>
> On 4/2/2021 12:51 PM, C Howland via Newlib wrote:
> >> ------------------------------
> >> *From:* Newlib <[email protected]> on behalf of Dave
> Nadler <
> >> [email protected]>
> >> *Sent:* Friday, April 2, 2021 7:34 AM
> >> *To:* Nick <[email protected]>
> >> *Cc:* [email protected] <[email protected]>
> >> *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, [email protected], Skype
>   Dave.Nadler1
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.