Skip to content
  • Matthew Fernandez's avatar
    fix: remove 'SIGINT' signal handler · 292f83b0
    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.