From 8a0c83d2552eb7a1fef63e421873ab4aeae19190 Mon Sep 17 00:00:00 2001 From: Harini Malothu Date: Tue, 7 Oct 2025 10:59:50 +0530 Subject: [PATCH 1/2] fix for watson --- .../dispatchQueue/threadPoolScheduler_win.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/vnext/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp b/vnext/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp index 47ac1151d37..29b64d596f5 100644 --- a/vnext/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +++ b/vnext/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. +#include // For std::runtime_error #include #include "dispatchQueue/dispatchQueue.h" #include "queueService.h" @@ -14,7 +15,7 @@ struct ThreadPoolWorkDeleter { }; struct ThreadPoolSchedulerWin : Mso::UnknownObject { - ThreadPoolSchedulerWin(uint32_t maxThreads) noexcept; + ThreadPoolSchedulerWin(uint32_t maxThreads); ~ThreadPoolSchedulerWin() noexcept override; static void __stdcall WorkCallback( @@ -93,9 +94,17 @@ std::mutex ThreadPoolSchedulerWin::s_threadPoolWorkMutex; bool ThreadPoolSchedulerWin::s_enableThreadPoolWorkTracking{false}; std::vector> ThreadPoolSchedulerWin::s_trackedThreadPoolWork; -ThreadPoolSchedulerWin::ThreadPoolSchedulerWin(uint32_t maxThreads) noexcept - : m_threadPoolWork{::CreateThreadpoolWork(WorkCallback, this, nullptr), ThreadPoolWorkDeleter{}}, - m_maxThreads{maxThreads == 0 ? MaxConcurrentThreads : maxThreads} { +ThreadPoolSchedulerWin::ThreadPoolSchedulerWin(uint32_t maxThreads) + : m_maxThreads{maxThreads == 0 ? MaxConcurrentThreads : maxThreads} { + // Create thread pool work + TP_WORK *tpWork = ::CreateThreadpoolWork(WorkCallback, this, nullptr); + + // Throw immediately if creation failed + if (!tpWork) { + throw std::runtime_error("Failed to create thread pool work"); + } + + m_threadPoolWork = std::shared_ptr(tpWork, ThreadPoolWorkDeleter{}); TrackThreadPoolWork(m_threadPoolWork); } From 9d38e8eb419626250ba26ae2ebbaa86b8d0c31c5 Mon Sep 17 00:00:00 2001 From: Harini Malothu Date: Tue, 7 Oct 2025 11:00:16 +0530 Subject: [PATCH 2/2] Change files --- ...ative-windows-430100b8-4f19-4354-90b8-48658475a668.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/react-native-windows-430100b8-4f19-4354-90b8-48658475a668.json diff --git a/change/react-native-windows-430100b8-4f19-4354-90b8-48658475a668.json b/change/react-native-windows-430100b8-4f19-4354-90b8-48658475a668.json new file mode 100644 index 00000000000..16887e8df1d --- /dev/null +++ b/change/react-native-windows-430100b8-4f19-4354-90b8-48658475a668.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "fix for watson", + "packageName": "react-native-windows", + "email": "hmalothu@microsoft.com", + "dependentChangeType": "patch" +}