[Bug libstdc++/64535] New: Emergency buffer for exception allocation too small
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 8 09:43:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64535
Bug ID: 64535
Summary: Emergency buffer for exception allocation too small
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
It was reported to us that in a heavily threaded environment the number of
emergency EH objects in libsubc++ eh_alloc.cc is too small (64). To mitigate
this it looks like we could use a TLS variable for the buffer instead
(libstdc++ already contains TLS variables for __once_call at least), which
also would get rid of the scoped lock (which hopefully will never allocate
memory...?).
If you use exceptions to catch and recover from low-memory situations
__cxa_allocate_exception calling std::terminate () becomes a correctness
issue (not sure what the C++ standard says about throwing exceptions
in low-memory situations).
More information about the Gcc-bugs
mailing list