* path.cc (mount_info::cygdrive_posix_path): Don't add trailing slash if
referring to something like c:\. * dcrt0.cc (dll_crt0_1): Move uinfo initialization prior to sig_send initialization to give signal thread a chance to finish. * debug.cc (WFSO): Move to sigproc.cc (WFMO): Ditto. * exceptions.cc (interruptible): Allocate slightly more space for directory just for paranoia's sake. (call_handler): Eliminate nonmain argument. Determine if main thread has set a frame pointer and use it if so. (sig_handle): Eliminate nonmain argument. * net.cc: Record frame information in appropriate routines throughout. * select.cc (select): Ditto. * sigproc.cc: Use sigthread structure to record mainthread id throughout. (sig_send): Record frame information for signal handler. (wait_sig): Reflect argument change in sig_handle. (WFSO): Move here and record frame information for signal handler. (WFMO): Ditto. * sigproc.h: Implement new "sigthread" class. Implement "sigframe" class for manipulating signal frame info. * thread.cc (__pthread_kill): Use standard _kill() function rather than calling sig_send directly. * winsup.h: Eliminate ebp element from signal_dispatch class.
This commit is contained in:
@@ -746,15 +746,15 @@ dll_crt0_1 ()
|
||||
set_errno (0);
|
||||
debug_printf ("user_data->main %p", user_data->main);
|
||||
|
||||
/* Initialize uid, gid. */
|
||||
uinfo_init ();
|
||||
|
||||
/* Flush signals and ensure that signal thread is up and running. Can't
|
||||
do this for noncygwin case since the signal thread is blocked due to
|
||||
LoadLibrary serialization. */
|
||||
if (!dynamically_loaded)
|
||||
sig_send (NULL, __SIGFLUSH);
|
||||
|
||||
/* Initialize uid, gid. */
|
||||
uinfo_init ();
|
||||
|
||||
if (user_data->main && !dynamically_loaded)
|
||||
exit (user_data->main (argc, argv, *user_data->envptr));
|
||||
}
|
||||
|
Reference in New Issue
Block a user