thread.c 637 Bytes
#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;
}