From: ivmai Date: Thu, 24 Sep 2009 11:54:47 +0000 (+0000) Subject: 2009-09-24 Ivan Maidanski X-Git-Tag: gc7_2alpha4~101 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6713d8473e2e44920c122a80552f718df6675dd9;p=platform%2Fupstream%2Flibgc.git 2009-09-24 Ivan Maidanski * win32_threads.c (GC_waitForSingleObjectInfinite): New static function (only if GC_WINMAIN_REDIRECT). * win32_threads.c (WinMain): Call GC_waitForSingleObjectInfinite() thru GC_do_blocking() instead of calling WaitForSingleObject() directly. --- diff --git a/ChangeLog b/ChangeLog index db703ab..a808e9e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2009-09-24 Ivan Maidanski + * win32_threads.c (GC_waitForSingleObjectInfinite): New static + function (only if GC_WINMAIN_REDIRECT). + * win32_threads.c (WinMain): Call GC_waitForSingleObjectInfinite() + thru GC_do_blocking() instead of calling WaitForSingleObject() + directly. + +2009-09-24 Ivan Maidanski + * pthread_support.c (start_mark_threads): Refine printed message. * win32_threads.c (GC_thr_init): Ditto. * win32_threads.c: Reformat some code pieces (wrap too long code @@ -322,7 +330,7 @@ adjusted) after start_mark_threads() call. 2009-09-16 Ivan Maidanski - + * Makefile.am: Back remove "GC_" prefix for PTHREADS, DARWIN_THREADS, WIN32_THREADS (for configure.ac). @@ -380,7 +388,7 @@ * include/private/gc_pmark.h: Ditto. * include/private/gcconfig.h: Ditto. * include/private/pthread_support.h: Ditto. - * include/private/thread_local_alloc.h: Ditto. + * include/private/thread_local_alloc.h: Ditto. * darwin_stop_world.c: Add copyright header. * include/gc_backptr.h: Ditto. * include/gc_config_macros.h: Ditto. diff --git a/win32_threads.c b/win32_threads.c index ee24d88..6b1dc7e 100644 --- a/win32_threads.c +++ b/win32_threads.c @@ -2092,6 +2092,11 @@ static DWORD WINAPI main_thread_start(LPVOID arg) args->lpCmdLine, args->nShowCmd); } +static void * GC_waitForSingleObjectInfinite(void * handle) +{ + return (void *)(word)WaitForSingleObject((HANDLE)handle, INFINITE); +} + # ifndef WINMAIN_THREAD_STACK_SIZE # define WINMAIN_THREAD_STACK_SIZE 0 /* default value */ # endif @@ -2118,7 +2123,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, if (thread_h != NULL) { - if (WaitForSingleObject (thread_h, INFINITE) == WAIT_FAILED) + if ((DWORD)(word)GC_do_blocking(GC_waitForSingleObjectInfinite, + (void *)thread_h) == WAIT_FAILED) ABORT("WaitForSingleObject(main_thread) failed"); GetExitCodeThread (thread_h, &exit_code); CloseHandle (thread_h);