@@ -119,6 +119,7 @@ struct umfIpcTest : umf_test::test,
119119 providerParamsDestroy = provider_params_destroy;
120120 memAccessor = accessor;
121121 openedIpcCacheSize = getOpenedIpcCacheSize ();
122+ numThreads = std::max (10 , (int )utils_get_num_cores ());
122123 }
123124
124125 void TearDown () override { test::TearDown (); }
@@ -188,7 +189,7 @@ struct umfIpcTest : umf_test::test,
188189 closeCount (0 ) {}
189190 };
190191
191- static constexpr int NTHREADS = 10 ;
192+ unsigned int numThreads ;
192193 stats_type stat;
193194 MemoryAccessor *memAccessor = nullptr ;
194195
@@ -214,9 +215,9 @@ struct umfIpcTest : umf_test::test,
214215 ptrs.push_back (ptr);
215216 }
216217
217- std::array <std::vector<umf_ipc_handle_t >, NTHREADS > ipcHandles;
218+ std::vector <std::vector<umf_ipc_handle_t >> ipcHandles (numThreads) ;
218219
219- umf_test::syncthreads_barrier syncthreads (NTHREADS );
220+ umf_test::syncthreads_barrier syncthreads (numThreads );
220221
221222 auto getHandlesFn = [shuffle, &ipcHandles, &ptrs,
222223 &syncthreads](size_t tid) {
@@ -238,7 +239,7 @@ struct umfIpcTest : umf_test::test,
238239 }
239240 };
240241
241- umf_test::parallel_exec (NTHREADS , getHandlesFn);
242+ umf_test::parallel_exec (numThreads , getHandlesFn);
242243
243244 auto putHandlesFn = [&ipcHandles, &syncthreads](size_t tid) {
244245 syncthreads ();
@@ -248,7 +249,7 @@ struct umfIpcTest : umf_test::test,
248249 }
249250 };
250251
251- umf_test::parallel_exec (NTHREADS , putHandlesFn);
252+ umf_test::parallel_exec (numThreads , putHandlesFn);
252253
253254 for (void *ptr : ptrs) {
254255 umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -272,7 +273,7 @@ struct umfIpcTest : umf_test::test,
272273 ptrs.push_back (ptr);
273274 }
274275
275- umf_test::syncthreads_barrier syncthreads (NTHREADS );
276+ umf_test::syncthreads_barrier syncthreads (numThreads );
276277
277278 auto getPutHandlesFn = [shuffle, &ptrs, &syncthreads](size_t ) {
278279 // Each thread gets a copy of the pointers to shuffle them
@@ -294,7 +295,7 @@ struct umfIpcTest : umf_test::test,
294295 }
295296 };
296297
297- umf_test::parallel_exec (NTHREADS , getPutHandlesFn);
298+ umf_test::parallel_exec (numThreads , getPutHandlesFn);
298299
299300 for (void *ptr : ptrs) {
300301 umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -328,13 +329,13 @@ struct umfIpcTest : umf_test::test,
328329 ipcHandles.push_back (ipcHandle);
329330 }
330331
331- std::array <std::vector<void *>, NTHREADS > openedIpcHandles;
332+ std::vector <std::vector<umf_ipc_handle_t > > openedIpcHandles (numThreads) ;
332333 umf_ipc_handler_handle_t ipcHandler = nullptr ;
333334 ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
334335 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
335336 ASSERT_NE (ipcHandler, nullptr );
336337
337- umf_test::syncthreads_barrier syncthreads (NTHREADS );
338+ umf_test::syncthreads_barrier syncthreads (numThreads );
338339
339340 auto openHandlesFn = [shuffle, &ipcHandles, &openedIpcHandles,
340341 &syncthreads, ipcHandler](size_t tid) {
@@ -351,11 +352,11 @@ struct umfIpcTest : umf_test::test,
351352 umf_result_t ret =
352353 umfOpenIPCHandle (ipcHandler, ipcHandle, &ptr);
353354 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
354- openedIpcHandles[tid].push_back (ptr);
355+ openedIpcHandles[tid].push_back (( umf_ipc_data_t *) ptr);
355356 }
356357 };
357358
358- umf_test::parallel_exec (NTHREADS , openHandlesFn);
359+ umf_test::parallel_exec (numThreads , openHandlesFn);
359360
360361 auto closeHandlesFn = [&openedIpcHandles, &syncthreads](size_t tid) {
361362 syncthreads ();
@@ -365,7 +366,7 @@ struct umfIpcTest : umf_test::test,
365366 }
366367 };
367368
368- umf_test::parallel_exec (NTHREADS , closeHandlesFn);
369+ umf_test::parallel_exec (numThreads , closeHandlesFn);
369370
370371 for (auto ipcHandle : ipcHandles) {
371372 ret = umfPutIPCHandle (ipcHandle);
@@ -412,7 +413,7 @@ struct umfIpcTest : umf_test::test,
412413 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
413414 ASSERT_NE (ipcHandler, nullptr );
414415
415- umf_test::syncthreads_barrier syncthreads (NTHREADS );
416+ umf_test::syncthreads_barrier syncthreads (numThreads );
416417
417418 auto openCloseHandlesFn = [shuffle, &ipcHandles, &syncthreads,
418419 ipcHandler](size_t ) {
@@ -434,7 +435,7 @@ struct umfIpcTest : umf_test::test,
434435 }
435436 };
436437
437- umf_test::parallel_exec (NTHREADS , openCloseHandlesFn);
438+ umf_test::parallel_exec (numThreads , openCloseHandlesFn);
438439
439440 for (auto ipcHandle : ipcHandles) {
440441 ret = umfPutIPCHandle (ipcHandle);
0 commit comments