Re: [PATCH v2] Restore _lock initialization in non-single threaded mode

Corinna Vinschen <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On Aug 30 15:54, Torbjörn SVENSSON wrote:
> When __SINGLE_THREAD__ is not defined, stdin, stdout and stderr needs
> to have their _lock instance initialized. The __sfp() method is not
> invoked for the 3 mentioned fds thus, the std() method needs to handle
> the initialization of the lock.
> 
> This is more or less a revert of 382550072b49430f8c69adee937a0ba07bd385e6
> 
> Contributed by STMicroelectronics
> 
> Signed-off-by: Torbjörn SVENSSON <[email protected]>
> ---
>  newlib/libc/stdio/findfp.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c
> index c43028209..2cc549537 100644
> --- a/newlib/libc/stdio/findfp.c
> +++ b/newlib/libc/stdio/findfp.c
> @@ -88,6 +88,10 @@ std (FILE *ptr,
>  #else /* _STDIO_CLOSE_STD_STREAMS */
>    ptr->_close = NULL;
>  #endif /* _STDIO_CLOSE_STD_STREAMS */
> +#ifndef __SINGLE_THREAD__
> +  if (ptr == &__sf[0] || ptr == &__sf[1] || ptr == &__sf[2])
> +    __lock_init_recursive (ptr->_lock);
> +#endif
>  #ifdef __SCLE
>    if (__stextmode (ptr->_file))
>      ptr->_flags |= __SCLE;
> -- 
> 2.25.1

Pushed.


Thanks,
Corinna
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.