* dcrt0.cc (do_global_dtors): Run DLL dtors.
(__main): Don't rely on atexit to run dtors. (do_exit): Specifically call do_global_dtors here. (cygwin_exit): Ditto. * dll_init.cc (dll_global_dtors): Make global. Only run dtors once. (dll_list::init): Just set flag that dtors should be run. Don't rely on atexit. * dll_init.h (dll_global_dtors): Declare. * exceptions.cc (sigrelse): Define. * path.h (is_fs_device): New method. (is_lnk_special): Ditto. * fhandler_disk_file.cc (fhandler_disk_file::link): Use "is_lnk_special" rather than "is_lnk_symlink". * syscalls.cc (rename): Ditto. * hookapi.cc (ld_preload): Use colon as a separator rather than space.
This commit is contained in:
@ -909,6 +909,24 @@ sighold (int sig)
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
sigrelse (int sig)
|
||||
{
|
||||
/* check that sig is in right range */
|
||||
if (sig < 0 || sig >= NSIG)
|
||||
{
|
||||
set_errno (EINVAL);
|
||||
syscall_printf ("signal %d out of range", sig);
|
||||
return -1;
|
||||
}
|
||||
mask_sync.acquire (INFINITE);
|
||||
sigset_t mask = myself->getsigmask ();
|
||||
sigdelset (&mask, sig);
|
||||
set_signal_mask (mask);
|
||||
mask_sync.release ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Update the signal mask for this process
|
||||
and return the old mask.
|
||||
Called from sigdelayed */
|
||||
|
Reference in New Issue
Block a user