@@ -119,6 +119,7 @@ struct umfIpcTest : umf_test::test,
119
119
providerParamsDestroy = provider_params_destroy;
120
120
memAccessor = accessor;
121
121
openedIpcCacheSize = getOpenedIpcCacheSize ();
122
+ numThreads = std::max (10 , (int )utils_get_num_cores ());
122
123
}
123
124
124
125
void TearDown () override { test::TearDown (); }
@@ -188,7 +189,7 @@ struct umfIpcTest : umf_test::test,
188
189
closeCount (0 ) {}
189
190
};
190
191
191
- static constexpr int NTHREADS = 10 ;
192
+ unsigned int numThreads ;
192
193
stats_type stat;
193
194
MemoryAccessor *memAccessor = nullptr ;
194
195
@@ -214,9 +215,9 @@ struct umfIpcTest : umf_test::test,
214
215
ptrs.push_back (ptr);
215
216
}
216
217
217
- std::array <std::vector<umf_ipc_handle_t >, NTHREADS > ipcHandles;
218
+ std::vector <std::vector<umf_ipc_handle_t >> ipcHandles (numThreads) ;
218
219
219
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
220
+ umf_test::syncthreads_barrier syncthreads (numThreads );
220
221
221
222
auto getHandlesFn = [shuffle, &ipcHandles, &ptrs,
222
223
&syncthreads](size_t tid) {
@@ -238,7 +239,7 @@ struct umfIpcTest : umf_test::test,
238
239
}
239
240
};
240
241
241
- umf_test::parallel_exec (NTHREADS , getHandlesFn);
242
+ umf_test::parallel_exec (numThreads , getHandlesFn);
242
243
243
244
auto putHandlesFn = [&ipcHandles, &syncthreads](size_t tid) {
244
245
syncthreads ();
@@ -248,7 +249,7 @@ struct umfIpcTest : umf_test::test,
248
249
}
249
250
};
250
251
251
- umf_test::parallel_exec (NTHREADS , putHandlesFn);
252
+ umf_test::parallel_exec (numThreads , putHandlesFn);
252
253
253
254
for (void *ptr : ptrs) {
254
255
umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -272,7 +273,7 @@ struct umfIpcTest : umf_test::test,
272
273
ptrs.push_back (ptr);
273
274
}
274
275
275
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
276
+ umf_test::syncthreads_barrier syncthreads (numThreads );
276
277
277
278
auto getPutHandlesFn = [shuffle, &ptrs, &syncthreads](size_t ) {
278
279
// Each thread gets a copy of the pointers to shuffle them
@@ -294,7 +295,7 @@ struct umfIpcTest : umf_test::test,
294
295
}
295
296
};
296
297
297
- umf_test::parallel_exec (NTHREADS , getPutHandlesFn);
298
+ umf_test::parallel_exec (numThreads , getPutHandlesFn);
298
299
299
300
for (void *ptr : ptrs) {
300
301
umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -328,13 +329,13 @@ struct umfIpcTest : umf_test::test,
328
329
ipcHandles.push_back (ipcHandle);
329
330
}
330
331
331
- std::array <std::vector<void *>, NTHREADS > openedIpcHandles;
332
+ std::vector <std::vector<umf_ipc_handle_t > > openedIpcHandles (numThreads) ;
332
333
umf_ipc_handler_handle_t ipcHandler = nullptr ;
333
334
ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
334
335
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
335
336
ASSERT_NE (ipcHandler, nullptr );
336
337
337
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
338
+ umf_test::syncthreads_barrier syncthreads (numThreads );
338
339
339
340
auto openHandlesFn = [shuffle, &ipcHandles, &openedIpcHandles,
340
341
&syncthreads, ipcHandler](size_t tid) {
@@ -351,11 +352,11 @@ struct umfIpcTest : umf_test::test,
351
352
umf_result_t ret =
352
353
umfOpenIPCHandle (ipcHandler, ipcHandle, &ptr);
353
354
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
354
- openedIpcHandles[tid].push_back (ptr);
355
+ openedIpcHandles[tid].push_back (( umf_ipc_data_t *) ptr);
355
356
}
356
357
};
357
358
358
- umf_test::parallel_exec (NTHREADS , openHandlesFn);
359
+ umf_test::parallel_exec (numThreads , openHandlesFn);
359
360
360
361
auto closeHandlesFn = [&openedIpcHandles, &syncthreads](size_t tid) {
361
362
syncthreads ();
@@ -365,7 +366,7 @@ struct umfIpcTest : umf_test::test,
365
366
}
366
367
};
367
368
368
- umf_test::parallel_exec (NTHREADS , closeHandlesFn);
369
+ umf_test::parallel_exec (numThreads , closeHandlesFn);
369
370
370
371
for (auto ipcHandle : ipcHandles) {
371
372
ret = umfPutIPCHandle (ipcHandle);
@@ -412,7 +413,7 @@ struct umfIpcTest : umf_test::test,
412
413
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
413
414
ASSERT_NE (ipcHandler, nullptr );
414
415
415
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
416
+ umf_test::syncthreads_barrier syncthreads (numThreads );
416
417
417
418
auto openCloseHandlesFn = [shuffle, &ipcHandles, &syncthreads,
418
419
ipcHandler](size_t ) {
@@ -434,7 +435,7 @@ struct umfIpcTest : umf_test::test,
434
435
}
435
436
};
436
437
437
- umf_test::parallel_exec (NTHREADS , openCloseHandlesFn);
438
+ umf_test::parallel_exec (numThreads , openCloseHandlesFn);
438
439
439
440
for (auto ipcHandle : ipcHandles) {
440
441
ret = umfPutIPCHandle (ipcHandle);
0 commit comments