@@ -207,12 +207,17 @@ TEST_P(umfIpcTest, BasicFlow) {
207
207
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
208
208
ASSERT_EQ (handleFullSize, handleHalfSize);
209
209
210
+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
211
+ ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
212
+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
213
+ ASSERT_NE (ipcHandler, nullptr );
214
+
210
215
void *fullArray = nullptr ;
211
- ret = umfOpenIPCHandle (pool. get () , ipcHandleFull, &fullArray);
216
+ ret = umfOpenIPCHandle (ipcHandler , ipcHandleFull, &fullArray);
212
217
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
213
218
214
219
void *halfArray = nullptr ;
215
- ret = umfOpenIPCHandle (pool. get () , ipcHandleHalf, &halfArray);
220
+ ret = umfOpenIPCHandle (ipcHandler , ipcHandleHalf, &halfArray);
216
221
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
217
222
218
223
std::vector<int > actual_data (SIZE);
@@ -276,8 +281,13 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
276
281
277
282
for (size_t pool_id = 0 ; pool_id < NUM_POOLS; pool_id++) {
278
283
void *ptr = nullptr ;
284
+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
279
285
ret =
280
- umfOpenIPCHandle (pools_to_open[pool_id].get (), ipcHandle, &ptr);
286
+ umfPoolGetIPCHandler (pools_to_open[pool_id].get (), &ipcHandler);
287
+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
288
+ ASSERT_NE (ipcHandler, nullptr );
289
+
290
+ ret = umfOpenIPCHandle (ipcHandler, ipcHandle, &ptr);
281
291
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
282
292
openedPtrs[pool_id][i] = ptr;
283
293
}
@@ -311,16 +321,22 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
311
321
TEST_P (umfIpcTest, AllocFreeAllocTest) {
312
322
constexpr size_t SIZE = 64 * 1024 ;
313
323
umf::pool_unique_handle_t pool = makePool ();
324
+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
325
+
326
+ umf_result_t ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
327
+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
328
+ ASSERT_NE (ipcHandler, nullptr );
329
+
314
330
void *ptr = umfPoolMalloc (pool.get (), SIZE);
315
331
EXPECT_NE (ptr, nullptr );
316
332
317
333
umf_ipc_handle_t ipcHandle = nullptr ;
318
334
size_t handleSize = 0 ;
319
- umf_result_t ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
335
+ ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
320
336
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
321
337
322
338
void *opened_ptr = nullptr ;
323
- ret = umfOpenIPCHandle (pool. get () , ipcHandle, &opened_ptr);
339
+ ret = umfOpenIPCHandle (ipcHandler , ipcHandle, &opened_ptr);
324
340
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
325
341
326
342
ret = umfCloseIPCHandle (opened_ptr);
@@ -343,7 +359,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
343
359
ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
344
360
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
345
361
346
- ret = umfOpenIPCHandle (pool. get () , ipcHandle, &opened_ptr);
362
+ ret = umfOpenIPCHandle (ipcHandler , ipcHandle, &opened_ptr);
347
363
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
348
364
349
365
ret = umfCloseIPCHandle (opened_ptr);
@@ -362,11 +378,22 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
362
378
EXPECT_EQ (stat.openCount , stat.closeCount );
363
379
}
364
380
365
- TEST_P (umfIpcTest, openInTwoPools ) {
381
+ TEST_P (umfIpcTest, openInTwoIpcHandlers ) {
366
382
constexpr size_t SIZE = 100 ;
367
383
std::vector<int > expected_data (SIZE);
368
384
umf::pool_unique_handle_t pool1 = makePool ();
369
385
umf::pool_unique_handle_t pool2 = makePool ();
386
+ umf_ipc_handler_handle_t ipcHandler1 = nullptr ;
387
+ umf_ipc_handler_handle_t ipcHandler2 = nullptr ;
388
+
389
+ umf_result_t ret = umfPoolGetIPCHandler (pool1.get (), &ipcHandler1);
390
+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
391
+ ASSERT_NE (ipcHandler1, nullptr );
392
+
393
+ ret = umfPoolGetIPCHandler (pool2.get (), &ipcHandler2);
394
+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
395
+ ASSERT_NE (ipcHandler2, nullptr );
396
+
370
397
void *ptr = umfPoolMalloc (pool1.get (), sizeof (expected_data[0 ]) * SIZE);
371
398
EXPECT_NE (ptr, nullptr );
372
399
@@ -375,15 +402,15 @@ TEST_P(umfIpcTest, openInTwoPools) {
375
402
376
403
umf_ipc_handle_t ipcHandle = nullptr ;
377
404
size_t handleSize = 0 ;
378
- umf_result_t ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
405
+ ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
379
406
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
380
407
381
408
void *openedPtr1 = nullptr ;
382
- ret = umfOpenIPCHandle (pool1. get () , ipcHandle, &openedPtr1);
409
+ ret = umfOpenIPCHandle (ipcHandler1 , ipcHandle, &openedPtr1);
383
410
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
384
411
385
412
void *openedPtr2 = nullptr ;
386
- ret = umfOpenIPCHandle (pool2. get () , ipcHandle, &openedPtr2);
413
+ ret = umfOpenIPCHandle (ipcHandler2 , ipcHandle, &openedPtr2);
387
414
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
388
415
389
416
ret = umfPutIPCHandle (ipcHandle);
@@ -466,6 +493,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
466
493
}
467
494
468
495
TEST_P (umfIpcTest, ConcurrentOpenCloseHandles) {
496
+ umf_result_t ret;
469
497
std::vector<void *> ptrs;
470
498
constexpr size_t ALLOC_SIZE = 100 ;
471
499
constexpr size_t NUM_POINTERS = 100 ;
@@ -481,21 +509,25 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
481
509
for (size_t i = 0 ; i < NUM_POINTERS; ++i) {
482
510
umf_ipc_handle_t ipcHandle;
483
511
size_t handleSize;
484
- umf_result_t ret = umfGetIPCHandle (ptrs[i], &ipcHandle, &handleSize);
512
+ ret = umfGetIPCHandle (ptrs[i], &ipcHandle, &handleSize);
485
513
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
486
514
ipcHandles[i] = ipcHandle;
487
515
}
488
516
489
517
std::array<std::vector<void *>, NTHREADS> openedIpcHandles;
518
+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
519
+ ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
520
+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
521
+ ASSERT_NE (ipcHandler, nullptr );
490
522
491
523
umf_test::syncthreads_barrier syncthreads (NTHREADS);
492
524
493
525
auto openHandlesFn = [&ipcHandles, &openedIpcHandles, &syncthreads,
494
- &pool ](size_t tid) {
526
+ ipcHandler ](size_t tid) {
495
527
syncthreads ();
496
528
for (auto ipcHandle : ipcHandles) {
497
529
void *ptr;
498
- umf_result_t ret = umfOpenIPCHandle (pool. get () , ipcHandle, &ptr);
530
+ umf_result_t ret = umfOpenIPCHandle (ipcHandler , ipcHandle, &ptr);
499
531
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
500
532
openedIpcHandles[tid].push_back (ptr);
501
533
}
@@ -514,12 +546,12 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
514
546
umf_test::parallel_exec (NTHREADS, closeHandlesFn);
515
547
516
548
for (auto ipcHandle : ipcHandles) {
517
- umf_result_t ret = umfPutIPCHandle (ipcHandle);
549
+ ret = umfPutIPCHandle (ipcHandle);
518
550
EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
519
551
}
520
552
521
553
for (void *ptr : ptrs) {
522
- umf_result_t ret = umfPoolFree (pool.get (), ptr);
554
+ ret = umfPoolFree (pool.get (), ptr);
523
555
EXPECT_EQ (ret,
524
556
get_umf_result_of_free (freeNotSupported, UMF_RESULT_SUCCESS));
525
557
}
0 commit comments