From a559179e6fe68a21687e9203ec583bd38b7573e7 Mon Sep 17 00:00:00 2001 From: tyustli <1225613647@qq.com> Date: Mon, 24 Jun 2019 15:59:26 +0800 Subject: [PATCH] fix cpp thread class error --- components/cplusplus/Thread.cpp | 7 ++++--- components/utilities/utest/utest.h | 8 ++++++++ components/utilities/utest/utest_assert.h | 8 ++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index 0f6315d178..103649b639 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -14,7 +14,7 @@ Thread::Thread(rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick, const char *name) -: _entry(RT_NULL), _param(RT_NULL), started(false) + : _entry(RT_NULL), _param(RT_NULL), started(false) { rt_event_init(&_event, name, 0); @@ -32,12 +32,12 @@ Thread::Thread(void (*entry)(void *p), rt_uint8_t priority, rt_uint32_t tick, const char *name) -: _entry(RT_NULL), _param(p), started(false) + : _entry(entry), _param(p), started(false) { rt_event_init(&_event, name, 0); _thread = rt_thread_create(name, - (thread_func_t)func, + (thread_func_t)entry, this, stack_size, priority, @@ -46,6 +46,7 @@ Thread::Thread(void (*entry)(void *p), Thread::~Thread() { + rt_event_detach(&_event); rt_thread_delete(_thread); } diff --git a/components/utilities/utest/utest.h b/components/utilities/utest/utest.h index 386d177a77..2c91bfe0e1 100644 --- a/components/utilities/utest/utest.h +++ b/components/utilities/utest/utest.h @@ -15,6 +15,10 @@ #include "utest_log.h" #include "utest_assert.h" +#ifdef __cplusplus +extern "C" { +#endif + /** * utest_error * @@ -157,4 +161,8 @@ utest_t utest_handle_get(void); utest_unit_run(test_unit_func, #test_unit_func); \ if(utest_handle_get()->failed_num != 0) return; +#ifdef __cplusplus +} +#endif + #endif /* __UTEST_H__ */ diff --git a/components/utilities/utest/utest_assert.h b/components/utilities/utest/utest_assert.h index 9c620c689d..d83279272e 100644 --- a/components/utilities/utest/utest_assert.h +++ b/components/utilities/utest/utest_assert.h @@ -14,6 +14,10 @@ #include "utest.h" #include +#ifdef __cplusplus +extern "C" { +#endif + /* No need for the user to use this function directly */ void utest_assert(int value, const char *file, int line, const char *func, const char *msg); @@ -61,4 +65,8 @@ void utest_assert_buf(const char *a, const char *b, rt_size_t sz, rt_bool_t equa #define uassert_in_range(value, min, max) __utest_assert(((value >= min) && (value <= max)), "(" #value ") not in range("#min","#max")") #define uassert_not_in_range(value, min, max) __utest_assert(!((value >= min) && (value <= max)), "(" #value ") in range("#min","#max")") +#ifdef __cplusplus +} +#endif + #endif /* __UTEST_ASSERT_H__ */