Index: loader/win32.c =================================================================== --- loader/win32.c.orig 2007-02-15 09:43:25.000000000 -0800 +++ loader/win32.c 2007-02-15 09:44:19.000000000 -0800 @@ -221,11 +221,14 @@ if ( mp_msg_test(MSGT_WIN32,MSGL_DBG3) ) { va_list va; + char tmpstr[1024]; + sprintf(tmpstr, "tid:%08x ", pthread_self()); va_start(va, fmt); - vprintf(fmt, va); + vsprintf(tmpstr + strlen(tmpstr), fmt, va); // mp_dbg(MSGT_WIN32, MSGL_DBG3, fmt, va); va_end(va); + printf(tmpstr); } fflush(stdout); #endif @@ -626,10 +629,9 @@ void* lpStartAddress, void* lpParameter, long dwFlags, long* dwThreadId) { - pthread_t *pth; + pthread_t pth; // printf("CreateThread:"); - pth = (pthread_t*) my_mreq(sizeof(pthread_t), 0); - pthread_create(pth, NULL, (void*(*)(void*))lpStartAddress, lpParameter); + pthread_create(&pth, NULL, (void*(*)(void*))lpStartAddress, lpParameter); if(dwFlags) printf( "WARNING: CreateThread flags not supported\n"); if(dwThreadId) @@ -819,7 +821,7 @@ while (pp && (pp->pm != ml->pm)) pp = pp->prev; if (!pp) { - pthread_t *thread = (pthread_t *)object; + pthread_t thread = (pthread_t)object; th_list *th = list; int rc; while(th && (th->thread != (void *)thread)) @@ -828,7 +830,7 @@ dbgprintf("WaitForSingleObject: NotFound\n"); return (void*)ret; } - rc = pthread_join(*thread, NULL); + rc = pthread_join(thread, NULL); if (! rc) { dbgprintf("WaitForSingleObject: Thread exited\n"); return (void *)WAIT_OBJECT_0;