diff options
author | berkeviktor@aol.com <berkeviktor@aol.com> | 2011-05-30 22:54:08 +0200 |
---|---|---|
committer | berkeviktor@aol.com <berkeviktor@aol.com> | 2011-05-30 22:54:08 +0200 |
commit | bd0728f03b9a3742d50db68ac77f1c4ea042f0a2 (patch) | |
tree | 52d4e619cc049b91c89a03865ec9b8b6c4a5b5a4 /src/common/thread.c | |
parent | 67e3ef79bddff056459914a51bea128ed619c5ed (diff) | |
parent | 24ac838543bc99ea8d289925b4c5418107d5ae1f (diff) |
Merge with default
Diffstat (limited to 'src/common/thread.c')
-rw-r--r-- | src/common/thread.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/common/thread.c b/src/common/thread.c new file mode 100644 index 00000000..02b17cfb --- /dev/null +++ b/src/common/thread.c @@ -0,0 +1,33 @@ +#include <fcntl.h> +#include "thread.h" + +thread * +thread_new (void) +{ + thread *th; + + th = calloc (1, sizeof (*th)); + if (!th) + { + return NULL; + } + + if (_pipe (th->pipe_fd, 4096, _O_BINARY) == -1) + { + free (th); + return NULL; + } + + return th; +} + +int +thread_start (thread *th, void *(*start_routine)(void *), void *arg) +{ + DWORD id; + + CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)start_routine, arg, 0, (DWORD *)&id)); + th->threadid = id; + + return 1; +} |