@@ -93,6 +93,7 @@ struct umfIpcTest : umf_test::test,
9393 providerParamsDestroy = provider_params_destroy;
9494 memAccessor = accessor;
9595 openedIpcCacheSize = getOpenedIpcCacheSize ();
96+ numThreads = std::max (10 , (int )utils_get_num_cores ());
9697 }
9798
9899 void TearDown () override { test::TearDown (); }
@@ -162,7 +163,7 @@ struct umfIpcTest : umf_test::test,
162163 closeCount (0 ) {}
163164 };
164165
165- static constexpr int NTHREADS = 10 ;
166+ unsigned int numThreads ;
166167 stats_type stat;
167168 MemoryAccessor *memAccessor = nullptr ;
168169
@@ -188,9 +189,9 @@ struct umfIpcTest : umf_test::test,
188189 ptrs.push_back (ptr);
189190 }
190191
191- std::array <std::vector<umf_ipc_handle_t >, NTHREADS > ipcHandles;
192+ std::vector <std::vector<umf_ipc_handle_t >> ipcHandles (numThreads) ;
192193
193- umf_test::syncthreads_barrier syncthreads (NTHREADS );
194+ umf_test::syncthreads_barrier syncthreads (numThreads );
194195
195196 auto getHandlesFn = [shuffle, &ipcHandles, &ptrs,
196197 &syncthreads](size_t tid) {
@@ -212,7 +213,7 @@ struct umfIpcTest : umf_test::test,
212213 }
213214 };
214215
215- umf_test::parallel_exec (NTHREADS , getHandlesFn);
216+ umf_test::parallel_exec (numThreads , getHandlesFn);
216217
217218 auto putHandlesFn = [&ipcHandles, &syncthreads](size_t tid) {
218219 syncthreads ();
@@ -222,7 +223,7 @@ struct umfIpcTest : umf_test::test,
222223 }
223224 };
224225
225- umf_test::parallel_exec (NTHREADS , putHandlesFn);
226+ umf_test::parallel_exec (numThreads , putHandlesFn);
226227
227228 for (void *ptr : ptrs) {
228229 umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -246,7 +247,7 @@ struct umfIpcTest : umf_test::test,
246247 ptrs.push_back (ptr);
247248 }
248249
249- umf_test::syncthreads_barrier syncthreads (NTHREADS );
250+ umf_test::syncthreads_barrier syncthreads (numThreads );
250251
251252 auto getPutHandlesFn = [shuffle, &ptrs, &syncthreads](size_t ) {
252253 // Each thread gets a copy of the pointers to shuffle them
@@ -268,7 +269,7 @@ struct umfIpcTest : umf_test::test,
268269 }
269270 };
270271
271- umf_test::parallel_exec (NTHREADS , getPutHandlesFn);
272+ umf_test::parallel_exec (numThreads , getPutHandlesFn);
272273
273274 for (void *ptr : ptrs) {
274275 umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -302,13 +303,13 @@ struct umfIpcTest : umf_test::test,
302303 ipcHandles.push_back (ipcHandle);
303304 }
304305
305- std::array <std::vector<void *>, NTHREADS > openedIpcHandles;
306+ std::vector <std::vector<umf_ipc_handle_t > > openedIpcHandles (numThreads) ;
306307 umf_ipc_handler_handle_t ipcHandler = nullptr ;
307308 ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
308309 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
309310 ASSERT_NE (ipcHandler, nullptr );
310311
311- umf_test::syncthreads_barrier syncthreads (NTHREADS );
312+ umf_test::syncthreads_barrier syncthreads (numThreads );
312313
313314 auto openHandlesFn = [shuffle, &ipcHandles, &openedIpcHandles,
314315 &syncthreads, ipcHandler](size_t tid) {
@@ -325,11 +326,11 @@ struct umfIpcTest : umf_test::test,
325326 umf_result_t ret =
326327 umfOpenIPCHandle (ipcHandler, ipcHandle, &ptr);
327328 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
328- openedIpcHandles[tid].push_back (ptr);
329+ openedIpcHandles[tid].push_back (( umf_ipc_data_t *) ptr);
329330 }
330331 };
331332
332- umf_test::parallel_exec (NTHREADS , openHandlesFn);
333+ umf_test::parallel_exec (numThreads , openHandlesFn);
333334
334335 auto closeHandlesFn = [&openedIpcHandles, &syncthreads](size_t tid) {
335336 syncthreads ();
@@ -339,7 +340,7 @@ struct umfIpcTest : umf_test::test,
339340 }
340341 };
341342
342- umf_test::parallel_exec (NTHREADS , closeHandlesFn);
343+ umf_test::parallel_exec (numThreads , closeHandlesFn);
343344
344345 for (auto ipcHandle : ipcHandles) {
345346 ret = umfPutIPCHandle (ipcHandle);
@@ -386,7 +387,7 @@ struct umfIpcTest : umf_test::test,
386387 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
387388 ASSERT_NE (ipcHandler, nullptr );
388389
389- umf_test::syncthreads_barrier syncthreads (NTHREADS );
390+ umf_test::syncthreads_barrier syncthreads (numThreads );
390391
391392 auto openCloseHandlesFn = [shuffle, &ipcHandles, &syncthreads,
392393 ipcHandler](size_t ) {
@@ -408,7 +409,7 @@ struct umfIpcTest : umf_test::test,
408409 }
409410 };
410411
411- umf_test::parallel_exec (NTHREADS , openCloseHandlesFn);
412+ umf_test::parallel_exec (numThreads , openCloseHandlesFn);
412413
413414 for (auto ipcHandle : ipcHandles) {
414415 ret = umfPutIPCHandle (ipcHandle);
0 commit comments