src/thread/win32/SDL_systhread.c
changeset 1470 d47d96962fcc
parent 1433 bb6839704ed6
child 1471 9fb0eee04dd9
equal deleted inserted replaced
1469:bf867c1e57e3 1470:d47d96962fcc
    57 }
    57 }
    58 
    58 
    59 int SDL_SYS_CreateThread(SDL_Thread *thread, void *args, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread)
    59 int SDL_SYS_CreateThread(SDL_Thread *thread, void *args, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread)
    60 {
    60 {
    61 	unsigned threadid;
    61 	unsigned threadid;
    62     pThreadStartParms pThreadParms = (pThreadStartParms)SDL_malloc(sizeof(tThreadStartParms));
    62 	pThreadStartParms pThreadParms = (pThreadStartParms)SDL_malloc(sizeof(tThreadStartParms));
    63     if (!pThreadParms) {
    63 	if (!pThreadParms) {
    64 		SDL_OutOfMemory();
    64 		SDL_OutOfMemory();
    65         return(-1);
    65 		return(-1);
    66     }
    66 	}
    67 
    67 
    68     // Save the function which we will have to call to clear the RTL of calling app!
    68 	// Save the function which we will have to call to clear the RTL of calling app!
    69     pThreadParms->pfnCurrentEndThread = pfnEndThread;
    69 	pThreadParms->pfnCurrentEndThread = pfnEndThread;
    70     // Also save the real parameters we have to pass to thread function
    70 	// Also save the real parameters we have to pass to thread function
    71     pThreadParms->args = args;
    71 	pThreadParms->args = args;
    72 
    72 
    73 	if (pfnBeginThread) {
    73 	if (pfnBeginThread) {
    74 		thread->handle = (SYS_ThreadHandle) pfnBeginThread(NULL, 0, RunThread,
    74 		thread->handle = (SYS_ThreadHandle) pfnBeginThread(NULL, 0, RunThread,
    75 				pThreadParms, 0, &threadid);
    75 				pThreadParms, 0, &threadid);
    76 	} else {
    76 	} else {