@@ -93,6 +93,7 @@ struct umfIpcTest : umf_test::test,
93
93
providerParamsDestroy = provider_params_destroy;
94
94
memAccessor = accessor;
95
95
openedIpcCacheSize = getOpenedIpcCacheSize ();
96
+ numThreads = std::max (10 , (int )utils_get_num_cores ());
96
97
}
97
98
98
99
void TearDown () override { test::TearDown (); }
@@ -162,7 +163,7 @@ struct umfIpcTest : umf_test::test,
162
163
closeCount (0 ) {}
163
164
};
164
165
165
- static constexpr int NTHREADS = 10 ;
166
+ unsigned int numThreads ;
166
167
stats_type stat;
167
168
MemoryAccessor *memAccessor = nullptr ;
168
169
@@ -188,9 +189,9 @@ struct umfIpcTest : umf_test::test,
188
189
ptrs.push_back (ptr);
189
190
}
190
191
191
- std::array <std::vector<umf_ipc_handle_t >, NTHREADS > ipcHandles;
192
+ std::vector <std::vector<umf_ipc_handle_t >> ipcHandles (numThreads) ;
192
193
193
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
194
+ umf_test::syncthreads_barrier syncthreads (numThreads );
194
195
195
196
auto getHandlesFn = [shuffle, &ipcHandles, &ptrs,
196
197
&syncthreads](size_t tid) {
@@ -212,7 +213,7 @@ struct umfIpcTest : umf_test::test,
212
213
}
213
214
};
214
215
215
- umf_test::parallel_exec (NTHREADS , getHandlesFn);
216
+ umf_test::parallel_exec (numThreads , getHandlesFn);
216
217
217
218
auto putHandlesFn = [&ipcHandles, &syncthreads](size_t tid) {
218
219
syncthreads ();
@@ -222,7 +223,7 @@ struct umfIpcTest : umf_test::test,
222
223
}
223
224
};
224
225
225
- umf_test::parallel_exec (NTHREADS , putHandlesFn);
226
+ umf_test::parallel_exec (numThreads , putHandlesFn);
226
227
227
228
for (void *ptr : ptrs) {
228
229
umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -246,7 +247,7 @@ struct umfIpcTest : umf_test::test,
246
247
ptrs.push_back (ptr);
247
248
}
248
249
249
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
250
+ umf_test::syncthreads_barrier syncthreads (numThreads );
250
251
251
252
auto getPutHandlesFn = [shuffle, &ptrs, &syncthreads](size_t ) {
252
253
// Each thread gets a copy of the pointers to shuffle them
@@ -268,7 +269,7 @@ struct umfIpcTest : umf_test::test,
268
269
}
269
270
};
270
271
271
- umf_test::parallel_exec (NTHREADS , getPutHandlesFn);
272
+ umf_test::parallel_exec (numThreads , getPutHandlesFn);
272
273
273
274
for (void *ptr : ptrs) {
274
275
umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -302,13 +303,13 @@ struct umfIpcTest : umf_test::test,
302
303
ipcHandles.push_back (ipcHandle);
303
304
}
304
305
305
- std::array <std::vector<void *>, NTHREADS > openedIpcHandles;
306
+ std::vector <std::vector<umf_ipc_handle_t > > openedIpcHandles (numThreads) ;
306
307
umf_ipc_handler_handle_t ipcHandler = nullptr ;
307
308
ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
308
309
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
309
310
ASSERT_NE (ipcHandler, nullptr );
310
311
311
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
312
+ umf_test::syncthreads_barrier syncthreads (numThreads );
312
313
313
314
auto openHandlesFn = [shuffle, &ipcHandles, &openedIpcHandles,
314
315
&syncthreads, ipcHandler](size_t tid) {
@@ -325,11 +326,11 @@ struct umfIpcTest : umf_test::test,
325
326
umf_result_t ret =
326
327
umfOpenIPCHandle (ipcHandler, ipcHandle, &ptr);
327
328
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
328
- openedIpcHandles[tid].push_back (ptr);
329
+ openedIpcHandles[tid].push_back (( umf_ipc_data_t *) ptr);
329
330
}
330
331
};
331
332
332
- umf_test::parallel_exec (NTHREADS , openHandlesFn);
333
+ umf_test::parallel_exec (numThreads , openHandlesFn);
333
334
334
335
auto closeHandlesFn = [&openedIpcHandles, &syncthreads](size_t tid) {
335
336
syncthreads ();
@@ -339,7 +340,7 @@ struct umfIpcTest : umf_test::test,
339
340
}
340
341
};
341
342
342
- umf_test::parallel_exec (NTHREADS , closeHandlesFn);
343
+ umf_test::parallel_exec (numThreads , closeHandlesFn);
343
344
344
345
for (auto ipcHandle : ipcHandles) {
345
346
ret = umfPutIPCHandle (ipcHandle);
@@ -386,7 +387,7 @@ struct umfIpcTest : umf_test::test,
386
387
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
387
388
ASSERT_NE (ipcHandler, nullptr );
388
389
389
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
390
+ umf_test::syncthreads_barrier syncthreads (numThreads );
390
391
391
392
auto openCloseHandlesFn = [shuffle, &ipcHandles, &syncthreads,
392
393
ipcHandler](size_t ) {
@@ -408,7 +409,7 @@ struct umfIpcTest : umf_test::test,
408
409
}
409
410
};
410
411
411
- umf_test::parallel_exec (NTHREADS , openCloseHandlesFn);
412
+ umf_test::parallel_exec (numThreads , openCloseHandlesFn);
412
413
413
414
for (auto ipcHandle : ipcHandles) {
414
415
ret = umfPutIPCHandle (ipcHandle);
0 commit comments