* cygthread.h (cygthread::cygthread): Reorganize slightly.

* dcrt0.cc (dll_crt0_0): Move sigproc initialization later to ensure everything
we need has been set up.
(dll_crt0_1): Streamline some logic slightly.
* sigproc.cc (no_signals_available): Add back dropped test for macro parameter.
* fhandler_console.cc (fhandler_console::write): Show a little bit of what's
being written to the console in debugging output.
This commit is contained in:
Christopher Faylor 2010-09-12 15:49:30 +00:00
parent 18df393573
commit 6c6eb02b33
5 changed files with 26 additions and 17 deletions

View File

@ -1,3 +1,14 @@
2010-09-12 Christopher Faylor <me+cygwin@cgf.cx>
* cygthread.h (cygthread::cygthread): Reorganize slightly.
* dcrt0.cc (dll_crt0_0): Move sigproc initialization later to ensure
everything we need has been set up.
(dll_crt0_1): Streamline some logic slightly.
* sigproc.cc (no_signals_available): Add back dropped test for macro
parameter.
* fhandler_console.cc (fhandler_console::write): Show a little bit of
what's being written to the console in debugging output.
2010-09-12 Corinna Vinschen <corinna@vinschen.de> 2010-09-12 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (start_transaction): Make inline function. Move up to be * syscalls.cc (start_transaction): Make inline function. Move up to be

View File

@ -43,7 +43,8 @@ class cygthread
void auto_release () {func = NULL;} void auto_release () {func = NULL;}
void release (bool); void release (bool);
cygthread (LPTHREAD_START_ROUTINE start, unsigned n, LPVOID param, const char *name, HANDLE notify = NULL) cygthread (LPTHREAD_START_ROUTINE start, unsigned n, LPVOID param, const char *name, HANDLE notify = NULL)
: __name (name), func (start), arglen (n), arg (param), notify_detached (notify), standalone (false) : __name (name), func (start), arglen (n), arg (param),
notify_detached (notify), standalone (false)
{ {
create (); create ();
} }
@ -57,7 +58,8 @@ class cygthread
zap_h (); zap_h ();
} }
cygthread (LPTHREAD_START_ROUTINE start, LPVOID param, const char *name, HANDLE notify = NULL) cygthread (LPTHREAD_START_ROUTINE start, LPVOID param, const char *name, HANDLE notify = NULL)
: __name (name), func (start), arglen (0), arg (param), notify_detached (notify), standalone (false) : __name (name), func (start), arglen (0), arg (param),
notify_detached (notify), standalone (false)
{ {
create (); create ();
} }

View File

@ -740,12 +740,6 @@ dll_crt0_0 ()
} }
} }
/* Initialize signal processing here, early, in the hopes that the creation
of a thread early in the process will cause more predictability in memory
layout for the main thread. */
if (!dynamically_loaded)
sigproc_init ();
user_data->threadinterface->Init (); user_data->threadinterface->Init ();
_cygtls::init (); _cygtls::init ();
@ -777,6 +771,12 @@ dll_crt0_0 ()
disable_dep (); disable_dep ();
#endif #endif
/* Initialize signal processing here, early, in the hopes that the creation
of a thread early in the process will cause more predictability in memory
layout for the main thread. */
if (!dynamically_loaded)
sigproc_init ();
debug_printf ("finished dll_crt0_0 initialization"); debug_printf ("finished dll_crt0_0 initialization");
} }
@ -940,25 +940,21 @@ dll_crt0_1 (void *)
for (unsigned int i = PREMAIN_LEN / 2; i < PREMAIN_LEN; i++) for (unsigned int i = PREMAIN_LEN / 2; i < PREMAIN_LEN; i++)
user_data->premain[i] (__argc, __argv, user_data); user_data->premain[i] (__argc, __argv, user_data);
debug_printf ("user_data->main %p", user_data->main); set_errno (0);
if (dynamically_loaded) if (dynamically_loaded)
{ return;
set_errno (0);
return;
}
/* Disable case-insensitive globbing */ /* Disable case-insensitive globbing */
ignore_case_with_glob = false; ignore_case_with_glob = false;
set_errno (0);
MALLOC_CHECK; MALLOC_CHECK;
cygbench (__progname); cygbench (__progname);
ld_preload (); ld_preload ();
/* Per POSIX set the default application locale back to "C". */ /* Per POSIX set the default application locale back to "C". */
_setlocale_r (_REENT, LC_CTYPE, "C"); _setlocale_r (_REENT, LC_CTYPE, "C");
if (user_data->main) if (user_data->main)
cygwin_exit (user_data->main (__argc, __argv, *user_data->envptr)); cygwin_exit (user_data->main (__argc, __argv, *user_data->envptr));
__asm__ (" \n\ __asm__ (" \n\

View File

@ -1987,7 +1987,7 @@ fhandler_console::write (const void *vsrc, size_t len)
} }
} }
syscall_printf ("%d = fhandler_console::write (,..%d)", len, len); syscall_printf ("%d = fhandler_console::write (\".20s\")", len, vsrc);
return len; return len;
} }

View File

@ -33,7 +33,7 @@ details. */
#define WSSC 60000 // Wait for signal completion #define WSSC 60000 // Wait for signal completion
#define WPSP 40000 // Wait for proc_subproc mutex #define WPSP 40000 // Wait for proc_subproc mutex
#define no_signals_available(x) (!my_sendsig ||( myself->exitcode & EXITCODE_SET) || (&_my_tls == _sig_tls) || !cygwin_finished_initializing) #define no_signals_available(x) (!my_sendsig || ((x) && myself->exitcode & EXITCODE_SET) || (&_my_tls == _sig_tls))
#define NPROCS 256 #define NPROCS 256