Rev 983 | Rev 1026 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 983 | Rev 999 | ||
|---|---|---|---|
| Line 47... | Line 47... | ||
| 47 | join(); |
47 | join(); |
| 48 | myIsCreated = false; |
48 | myIsCreated = false; |
| 49 | 49 | ||
| 50 | return myError == 0; |
50 | return myError == 0; |
| 51 | }; |
51 | }; |
| - | 52 | ||
| 52 | bool start() |
53 | bool start() |
| 53 | { |
54 | { |
| 54 | myError = pthread_create(&myHandle, NULL, T::doThread, (void*)this); |
55 | myError = pthread_create(&myHandle, NULL, T::doThread, (void*)this); |
| 55 | 56 | ||
| 56 | if (myError != 0) |
57 | if (myError != 0) |
| 57 | { |
58 | { |
| 58 | myIsCreated = false; |
59 | myIsCreated = false; |
| 59 | return false; |
60 | return false; |
| 60 | } |
61 | } |
| 61 | 62 | ||
| 62 | myIsCreated = true; |
63 | myIsCreated = true; |
| 63 | return true; |
64 | return true; |
| 64 | }; |
65 | }; |
| - | 66 | ||
| 65 | bool join() |
67 | bool join() |
| 66 | { |
68 | { |
| 67 | if (!myIsCreated) |
69 | if (!myIsCreated) |
| 68 | return false; |
70 | return false; |
| 69 | 71 | ||
| 70 | myError = pthread_join(myHandle, NULL); |
72 | myError = pthread_join(myHandle, NULL); |
| 71 | 73 | ||
| 72 | if (myError != 0) |
74 | if (myError != 0) |
| 73 | { |
75 | { |
| 74 | myIsCreated = false; |
76 | myIsCreated = false; |
| 75 | return false; |
77 | return false; |
| 76 | } |
78 | } |
| 77 | 79 | ||
| 78 | myIsCreated = true; |
80 | myIsCreated = true; |
| 79 | return true; |
81 | return true; |
| 80 | }; |
82 | }; |
| - | 83 | ||
| 81 | int getError() |
84 | int getError() |
| 82 | { |
85 | { |
| 83 | return myError; |
86 | return myError; |
| 84 | }; |
87 | }; |
| 85 | 88 | ||
| 86 | static void *doThread(void* ptr) |
89 | static void *doThread(void* ptr) |
| 87 | { |
90 | { |
| 88 | ((T*)ptr)->run(); |
91 | ((T*)ptr)->run(); |
| 89 | }; |
92 | }; |
| - | 93 | ||
| 90 | void run() { }; |
94 | virtual void run() { }; |
| 91 | 95 | ||
| 92 | private: |
96 | private: |
| 93 | bool myIsCreated; |
97 | bool myIsCreated; |
| 94 | pthread_t myHandle; |
98 | pthread_t myHandle; |
| 95 | int myError; |
99 | int myError; |