bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ISO C 23, <stdlib.h>, and once_flag


From: Bruno Haible
Subject: Re: ISO C 23, <stdlib.h>, and once_flag
Date: Sat, 25 Mar 2023 23:32:02 +0100

effrey Walton wrote:
> Be careful of call_once.
> 
> Several years ago I cut over to C++11's call_once. The problem was, it
> only worked reliably on 32-bit and 64-bit Intel platforms. It was a
> disaster on Aarch64, PowerPC and Sparc. I had to back it out.
> 
> The problems happened back when GCC 6 and 7 were popular. The problem
> was due to something sideways in glibc.
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146

This was/is a problem of std::call_once, implemented in libstdc++.
Not about the call_once in C, implemented in glibc.

> If you want a call_once-like initialization then rely on N2660:
> Dynamic Initialization and Destruction with Concurrency.

This too is about C++ only.

AFAIU https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146#c9,
there's a conflict between call_once being compiled in C (and without
special GCC options) and a callee that throws C++ exceptions.

For you, it's a reminder to not use call_once. For me, it's more a
reminder to not use C++. :-)

Bruno






reply via email to

[Prev in Thread] Current Thread [Next in Thread]