[PATCH] libstdc++: Allow std::condition_variable waits to be cancelled [PR103382]
Florian Weimer
fweimer@redhat.com
Tue Dec 7 21:52:08 GMT 2021
* Jonathan Wakely:
> On Tue, 7 Dec 2021, 21:20 Florian Weimer via Libstdc++, <libstdc++@gcc.gnu.org>
> wrote:
>
> * Jonathan Wakely via Libstdc:
>
> > If necessary we could keep the terminate-on-cancellation behaviour as
> > _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11
> > and export the new behaviour as @@GLIBCXX_3.4.30, although this patch
> > doesn't do that.
>
> Note that if this fix escapes into the wild and then you have to make
> the symbol version change, you will break newer applications. In a few
> cases in glibc, we proactively added aliases at a different symbol
> version, but with the same implementation (at first).
>
> To be safe, we probably should preserve the old behaviour for the old
> version of the symbol. If we decide that the new behaviour is always
> preferable, we could change that later by making the old symbol an
> alias for the new. If we don't decide that, we'll be glad we made it a
> separate symbol.
On the other hand, with separate versions, it's possible to reintroduce
the old behavior at a later date, as a bugfix. It's not strictly
necessary to do that work upfront. It's just nice to have this option.
> I'll see if I can get it working with two versioned symbols. We don't
> actually do that in libstdc++ currently, we only have a single version
> of every symbol.
Ping me if you want to discuss options. 8->
Out of curiosity—do you support building libstdc++ (the shared object)
with a different compiler than the included GCC?
Thanks,
Florian
More information about the Libstdc++
mailing list