From e0e8c85e2b23f74a7968fd88b831f300b01907d3 Mon Sep 17 00:00:00 2001 From: Sumit Bhardwaj Date: Mon, 7 Jun 2021 20:37:20 -0700 Subject: [PATCH 1/2] Adding native_handle to jthread() --- stl/inc/thread | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stl/inc/thread b/stl/inc/thread index 0d7be907f61..1a9bbd23ef2 100644 --- a/stl/inc/thread +++ b/stl/inc/thread @@ -364,6 +364,10 @@ public: return thread::hardware_concurrency(); } + _NODISCARD native_handle_type native_handle() { + return _Impl.native_handle(); + } + private: void _Try_cancel_and_join() noexcept { if (_Impl.joinable()) { From 706d3f4dda84e4ccce8c95765094e48141c0dabf Mon Sep 17 00:00:00 2001 From: Sumit Bhardwaj Date: Tue, 8 Jun 2021 11:20:02 -0700 Subject: [PATCH 2/2] Add noexcept to native_handle and move up as per PR feedback --- stl/inc/thread | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/stl/inc/thread b/stl/inc/thread index 1a9bbd23ef2..0be2d798960 100644 --- a/stl/inc/thread +++ b/stl/inc/thread @@ -145,12 +145,12 @@ public: _NODISCARD id get_id() const noexcept; - _NODISCARD static unsigned int hardware_concurrency() noexcept { - return _Thrd_hardware_concurrency(); + _NODISCARD native_handle_type native_handle() noexcept /* strengthened */ { // return Win32 HANDLE as void * + return _Thr._Hnd; } - _NODISCARD native_handle_type native_handle() { // return Win32 HANDLE as void * - return _Thr._Hnd; + _NODISCARD static unsigned int hardware_concurrency() noexcept { + return _Thrd_hardware_concurrency(); } private: @@ -344,6 +344,10 @@ public: return _Impl.get_id(); } + _NODISCARD native_handle_type native_handle() noexcept /* strengthened */ { + return _Impl.native_handle(); + } + _NODISCARD stop_source get_stop_source() noexcept { return _Ssource; } @@ -364,10 +368,6 @@ public: return thread::hardware_concurrency(); } - _NODISCARD native_handle_type native_handle() { - return _Impl.native_handle(); - } - private: void _Try_cancel_and_join() noexcept { if (_Impl.joinable()) {