| 98 | } |
| 99 | |
| 100 | rt_err_t Thread::join(int32_t millisec) |
| 101 | { |
| 102 | if (started) |
| 103 | { |
| 104 | rt_int32_t tick; |
| 105 | |
| 106 | if (millisec < 0) |
| 107 | tick = -1; |
| 108 | else |
| 109 | tick = rt_tick_from_millisecond(millisec); |
| 110 | |
| 111 | return rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); |
| 112 | } |
| 113 | else |
| 114 | { |
| 115 | return -RT_ENOSYS; |
| 116 | } |
| 117 | } |