Refactor Thread class

Associate platform OS thread to the Thread class instead of
creating it from ThreadsManager.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2012-03-24 20:10:13 +01:00
parent f01b53c374
commit 553655eb07
6 changed files with 82 additions and 83 deletions

View File

@@ -65,7 +65,7 @@ typedef void*(*start_fn)(void*);
# define cond_signal(x) pthread_cond_signal(&(x))
# define cond_wait(x,y) pthread_cond_wait(&(x),&(y))
# define cond_timedwait(x,y,z) pthread_cond_timedwait(&(x),&(y),z)
# define thread_create(x,f,id) !pthread_create(&(x),NULL,(start_fn)f,&(id))
# define thread_create(x,f,t) !pthread_create(&(x),NULL,(start_fn)f,t)
# define thread_join(x) pthread_join(x, NULL)
#else // Windows and MinGW
@@ -101,7 +101,7 @@ typedef HANDLE ThreadHandle;
# define cond_signal(x) SetEvent(x)
# define cond_wait(x,y) { lock_release(y); WaitForSingleObject(x, INFINITE); lock_grab(y); }
# define cond_timedwait(x,y,z) { lock_release(y); WaitForSingleObject(x,z); lock_grab(y); }
# define thread_create(x,f,id) (x = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)f,&(id),0,NULL), x != NULL)
# define thread_create(x,f,t) (x = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)f,t,0,NULL), x != NULL)
# define thread_join(x) { WaitForSingleObject(x, INFINITE); CloseHandle(x); }
#endif