From a514b3bd16e4f21202cc001d9294ac2c2f206c3d Mon Sep 17 00:00:00 2001 From: "Man, Jianting (Meco)" <920369182@qq.com> Date: Fri, 25 Mar 2022 11:07:18 -0400 Subject: [components][kconfig] 整理Kconfig目录名称和结构 (#5698) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/cplusplus/cpp11/gcc/thread.cpp | 94 ------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 components/cplusplus/cpp11/gcc/thread.cpp (limited to 'components/cplusplus/cpp11/gcc/thread.cpp') diff --git a/components/cplusplus/cpp11/gcc/thread.cpp b/components/cplusplus/cpp11/gcc/thread.cpp deleted file mode 100644 index 3979da0dc4..0000000000 --- a/components/cplusplus/cpp11/gcc/thread.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-04-27 flybreak the first version. - */ - -#include "thread" -#include "__utils.h" - - -#define _RT_NPROCS 0 - -namespace std -{ - - extern "C" - { - static void* execute_native_thread_routine(void *p) - { - thread::invoker_base* t = static_cast(p); - thread::invoker_base_ptr local; - local.swap(t->this_ptr); // tranfer the ownership of the invoker into the thread entry - - local->invoke(); - - return NULL; - } - } - - void thread::start_thread(invoker_base_ptr b) - { - auto raw_ptr = b.get(); - // transfer the ownership of the invoker to the new thread - raw_ptr->this_ptr = std::move(b); - int err = pthread_create(&_m_thr.__cpp_thread_t, NULL, - &execute_native_thread_routine, raw_ptr); - - if (err) - { - raw_ptr->this_ptr.reset(); - throw_system_error(err, "Failed to create a thread"); - } - - } - - thread::~thread() - { - if (joinable()) // when either not joined or not detached - terminate(); - } - - void thread::join() - { - int err = EINVAL; - - if (joinable()) - err = pthread_join(native_handle(), NULL); - - if (err) - { - throw_system_error(err, "thread::join failed"); - } - - _m_thr = id(); - } - - void thread::detach() - { - int err = EINVAL; - - if (joinable()) - err = pthread_detach(native_handle()); - if (err) - { - throw_system_error(err, "thread::detach failed"); - } - - _m_thr = id(); - } - - // TODO: not yet actually implemented. - // The standard states that the returned value should only be considered a hint. - unsigned thread::hardware_concurrency() noexcept - { - int __n = _RT_NPROCS; - if (__n < 0) - __n = 0; - return __n; - } -} -- cgit v1.3.1