-
Matthew Fernandez authored
This signal handler was calling non-trivial functions that performed signal-unsafe work. In particular, attempts to interact with the system allocator. Quoting downstream discussion:¹ On Mon, 4 Mar 2013 21:26:40 -0600, Jeff Epler wrote: > On Sun, Mar 03, 2013 at 12:20:57PM +0000, Steven Chamberlain wrote: > > > #5 0x0000000800d21f2c in *__GI___libc_free (mem=<optimized out>) at malloc.c:3736 > > > ar_ptr = 0x800ff3240 > > > p = <optimized out> > > > #6 0x0000000800844a79 in gvFreeContext () from /usr/lib/libgvc.so.5 > > > No symbol table info available. > > > #7 0x0000000000400fd8 in ?? () > > > No symbol table info available. > > > #8 0x000000080389bf04 in __pthread_sighandler > > As many of you are probably aware, it's not permitted in POSIX to call free() > in signal handler context without some additional guarantees about what the > interrupted function may be. > http://pubs.opengroup.org/onlinepubs/9699919799/func...
292f83b0
To find the state of this project's repository at the time of any of these versions, check out the tags.