<div dir="ltr"><div dir="ltr"><div dir="ltr">I think this is a generally useful thing to explore, but it definitely needs to go through SG1 first because it affects the memory model. SG1 spends a considerable fraction of its time pondering the progress guarantees around signal handling, and it interacts with all the SG1 facilities in a pretty deep way (e..g: lock-freedom).</div><div dir="ltr"><br></div><div>I'd like to understand the discussion of setjmp/longjmp. Why not talk about sigsetjmp/siglongjmp instead? They're primitives built for this purpose, whereas setjmp/longjmp aren't.</div><div><br></div><div>Right now signal supports SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM. You're expanding that list. It would be good to discuss this expansion, as well as how your proposal interacts with existing signal support.</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 30, 2019 at 8:58 AM Niall Douglas <<a href="mailto:s_sourceforge@nedprod.com">s_sourceforge@nedprod.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear SG12,<br>
<br>
CC: Herb Sutter<br>
<br>
As we limber up to the Cologne mailing deadline, here is draft 1 of a<br>
proposal to add stackable, thread local, signal guards to the C++<br>
standard library. It will be submitted for SG12 to review at Cologne.<br>
<br>
A signal guard allows one to recover from a hardware exception during a<br>
guarded piece of code e.g. SIGFPE, SIGSEGV, and so on. The guard acts on<br>
the local thread, rather than globally. And they can be stacked, one<br>
inside another.<br>
<br>
They also can guard against OOM and termination, which may be useful for<br>
Herbceptions' proposed OOM handling changes.<br>
<br>
A reference library implementation is linked, it's been in production<br>
for over a year now, and has proven quite popular with many people as it<br>
abstracts away lots of annoying implementation specifics.<br>
<br>
Comments welcome.<br>
<br>
Niall<br>
_______________________________________________<br>
ub mailing list<br>
<a href="mailto:ub@isocpp.open-std.org" target="_blank">ub@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/ub" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/ub</a><br>
</blockquote></div>