thread.c
637 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <scot/thread.h>
THREAD_T
thread_new (T_PROC_RET (*t_proc)(void *), void* arg)
{
return (_beginthreadex (NULL, 0, t_proc, arg, 0, NULL));
}
int
thread_join (THREAD_T thread, unsigned int timeout)
{
switch (WaitForSingleObject (thread, timeout * 1000))
{
case WAIT_OBJECT_0:
CloseHandle (thread);
return JOIN_OK;
case WAIT_TIMEOUT:
return JOIN_TIMEOUT;
}
}
int
thread_mutex_lock (THREAD_MUTEX_T * mutex)
{
switch (WaitForSingleObject (*mutex, INFINITE))
{
case WAIT_OBJECT_0:
return MUTEX_LOCK_OK;
default:
return MUTEX_LOCK_ERROR;
}
}
THREAD_MUTEX_T
thread_mutex_new (void)
{
return NULL;
}