diff options
| author | tyustli <[email protected]> | 2019-07-27 17:33:36 +0800 |
|---|---|---|
| committer | tyustli <[email protected]> | 2019-07-27 17:33:36 +0800 |
| commit | 85a9f5add9fd54b3917cfca2a8555c6525df0538 (patch) | |
| tree | 3f1d642df6ad7a9a158291ef8f5539c0a9374402 /components/cplusplus | |
| parent | 5180262010f5ed76f757125a75d54d37c289d022 (diff) | |
fix bug in Thread.cpp/Thread.h/components.c files
Diffstat (limited to 'components/cplusplus')
| -rw-r--r-- | components/cplusplus/Thread.cpp | 16 | ||||
| -rw-r--r-- | components/cplusplus/Thread.h | 7 |
2 files changed, 13 insertions, 10 deletions
diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index 9b2a2ad5e0..b21fbdce1f 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -80,23 +80,23 @@ void Thread::func(Thread *pThis) } else { - pThis->run(); + pThis->run(pThis->_param); } rt_event_send(&pThis->_event, 1); } -void Thread::run() +void Thread::run(void *parameter) { /* please overload this method */ } -void Thread::wait(int32_t millisec) +rt_err_t Thread::wait(int32_t millisec) { - join(millisec); + return join(millisec); } -void Thread::join(int32_t millisec) +rt_err_t Thread::join(int32_t millisec) { if (started) { @@ -107,6 +107,10 @@ void Thread::join(int32_t millisec) else tick = rt_tick_from_millisecond(millisec); - rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); + return rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); + } + else + { + return -RT_ENOSYS; } } diff --git a/components/cplusplus/Thread.h b/components/cplusplus/Thread.h index 71ee50e1f9..b578659489 100644 --- a/components/cplusplus/Thread.h +++ b/components/cplusplus/Thread.h @@ -45,16 +45,15 @@ public: static void sleep(int32_t millisec); - void wait(int32_t millisec); - void join(int32_t millisec = -1); + rt_err_t wait(int32_t millisec); + rt_err_t join(int32_t millisec = -1); protected: - virtual void run(); + virtual void run(void *parameter); private: static void func(Thread *pThis); -private: rt_thread_t _thread; thread_func_t _entry; |
