* cygthread.cc (cygthread::async_create): Define new function.

* cygthread.h (cygthread::create): Use correct regparm.
(cygthread::standalone): Delete from class and from all constructors.
(cygthread::cygthread): Use three only arguments for detached threads, and
start the thread via QueueUserAPC/async_create.
* dcrt0.cc (dll_crt0_0): Remove handling for wincap.has_buggy_thread_startup.
(dll_crt0_1): Ditto.
* wincap.cc: Ditto throughout.
* wincap.h: Ditto.
This commit is contained in:
Christopher Faylor
2011-07-30 20:50:23 +00:00
parent f7e198a665
commit 53ad6f1394
6 changed files with 37 additions and 30 deletions

View File

@@ -709,7 +709,7 @@ 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 (!wincap.has_buggy_thread_startup () && !dynamically_loaded)
if (!dynamically_loaded)
sigproc_init ();
debug_printf ("finished dll_crt0_0 initialization");
@@ -724,8 +724,9 @@ dll_crt0_1 (void *)
{
extern void initial_setlocale ();
if (wincap.has_buggy_thread_startup () || dynamically_loaded)
if (dynamically_loaded)
sigproc_init ();
check_sanity_and_sync (user_data);
/* Initialize malloc and then call user_shared_initialize since it relies