aboutsummaryrefslogtreecommitdiff
path: root/src/thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread.cpp')
-rw-r--r--src/thread.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/thread.cpp b/src/thread.cpp
new file mode 100644
index 0000000..e4563a2
--- /dev/null
+++ b/src/thread.cpp
@@ -0,0 +1,55 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
8#include "bu/thread.h"
9
10#include "bu/config.h"
11
12Bu::Thread::Thread()
13{
14}
15
16Bu::Thread::~Thread()
17{
18}
19
20bool Bu::Thread::start()
21{
22 nHandle = pthread_create( &ptHandle, NULL, threadRunner, this );
23
24 return true;
25}
26
27bool Bu::Thread::stop()
28{
29 pthread_cancel( ptHandle );
30
31 return true;
32}
33
34void *Bu::Thread::threadRunner( void *pThread )
35{
36 ((Thread *)pThread)->run();
37 pthread_exit( NULL );
38 return NULL;
39}
40
41bool Bu::Thread::join()
42{
43 pthread_join( ptHandle, NULL );
44 return true;
45}
46
47void Bu::Thread::yield()
48{
49#ifndef WIN32
50 pthread_yield();
51#else
52 #warning Bu::Thread::yield IS A STUB for WIN32!!!!
53#endif
54}
55