thread.c
changeset 4300 687a17c9c557
parent 4298 3417f80deca1
child 4324 9c999cc382fa
equal deleted inserted replaced
4299:b86602eaaff1 4300:687a17c9c557
     5 #include <stdlib.h>
     5 #include <stdlib.h>
     6 
     6 
     7 #if defined(__AMIGA__) || defined(__MORPHOS__)
     7 #if defined(__AMIGA__) || defined(__MORPHOS__)
     8 OTTDThread* OTTDCreateThread(OTTDThreadFunc function, void* arg) { return NULL; }
     8 OTTDThread* OTTDCreateThread(OTTDThreadFunc function, void* arg) { return NULL; }
     9 void* OTTDJoinThread(OTTDThread* t) { return NULL; }
     9 void* OTTDJoinThread(OTTDThread* t) { return NULL; }
    10 
    10 void OTTDExitThread() { NOT_REACHED(); };
    11 
    11 
    12 #elif defined(__OS2__)
    12 #elif defined(__OS2__)
    13 
    13 
    14 #define INCL_DOS
    14 #define INCL_DOS
    15 #include <os2.h>
    15 #include <os2.h>
    55 	ret = t->ret;
    55 	ret = t->ret;
    56 	free(t);
    56 	free(t);
    57 	return ret;
    57 	return ret;
    58 }
    58 }
    59 
    59 
       
    60 void OTTDExitThread(void)
       
    61 {
       
    62 	_endthread();
       
    63 }
    60 
    64 
    61 #elif defined(UNIX)
    65 #elif defined(UNIX)
    62 
    66 
    63 #include <pthread.h>
    67 #include <pthread.h>
    64 
    68 
    89 	pthread_join(t->thread, &ret);
    93 	pthread_join(t->thread, &ret);
    90 	free(t);
    94 	free(t);
    91 	return ret;
    95 	return ret;
    92 }
    96 }
    93 
    97 
       
    98 void OTTDExitThread(void)
       
    99 {
       
   100 	pthread_exit(NULL);
       
   101 }
    94 
   102 
    95 #elif defined(WIN32)
   103 #elif defined(WIN32)
    96 
   104 
    97 #include <windows.h>
   105 #include <windows.h>
    98 
   106 
   139 	CloseHandle(t->thread);
   147 	CloseHandle(t->thread);
   140 	ret = t->ret;
   148 	ret = t->ret;
   141 	free(t);
   149 	free(t);
   142 	return ret;
   150 	return ret;
   143 }
   151 }
       
   152 
       
   153 void OTTDExitThread(void)
       
   154 {
       
   155 	ExitThread(0);
       
   156 }
   144 #endif
   157 #endif