@@ -194,12 +194,17 @@ TEST_P(umfIpcTest, BasicFlow) {
194194 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
195195 ASSERT_EQ (handleFullSize, handleHalfSize);
196196
197+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
198+ ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
199+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
200+ ASSERT_NE (ipcHandler, nullptr );
201+
197202 void *fullArray = nullptr ;
198- ret = umfOpenIPCHandle (pool. get () , ipcHandleFull, &fullArray);
203+ ret = umfOpenIPCHandle (ipcHandler , ipcHandleFull, &fullArray);
199204 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
200205
201206 void *halfArray = nullptr ;
202- ret = umfOpenIPCHandle (pool. get () , ipcHandleHalf, &halfArray);
207+ ret = umfOpenIPCHandle (ipcHandler , ipcHandleHalf, &halfArray);
203208 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
204209
205210 std::vector<int > actual_data (SIZE);
@@ -262,8 +267,13 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
262267
263268 for (size_t pool_id = 0 ; pool_id < NUM_POOLS; pool_id++) {
264269 void *ptr = nullptr ;
270+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
265271 ret =
266- umfOpenIPCHandle (pools_to_open[pool_id].get (), ipcHandle, &ptr);
272+ umfPoolGetIPCHandler (pools_to_open[pool_id].get (), &ipcHandler);
273+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
274+ ASSERT_NE (ipcHandler, nullptr );
275+
276+ ret = umfOpenIPCHandle (ipcHandler, ipcHandle, &ptr);
267277 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
268278 openedPtrs[pool_id][i] = ptr;
269279 }
@@ -296,16 +306,22 @@ TEST_P(umfIpcTest, GetPoolByOpenedHandle) {
296306TEST_P (umfIpcTest, AllocFreeAllocTest) {
297307 constexpr size_t SIZE = 64 * 1024 ;
298308 umf::pool_unique_handle_t pool = makePool ();
309+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
310+
311+ umf_result_t ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
312+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
313+ ASSERT_NE (ipcHandler, nullptr );
314+
299315 void *ptr = umfPoolMalloc (pool.get (), SIZE);
300316 EXPECT_NE (ptr, nullptr );
301317
302318 umf_ipc_handle_t ipcHandle = nullptr ;
303319 size_t handleSize = 0 ;
304- umf_result_t ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
320+ ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
305321 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
306322
307323 void *opened_ptr = nullptr ;
308- ret = umfOpenIPCHandle (pool. get () , ipcHandle, &opened_ptr);
324+ ret = umfOpenIPCHandle (ipcHandler , ipcHandle, &opened_ptr);
309325 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
310326
311327 ret = umfCloseIPCHandle (opened_ptr);
@@ -327,7 +343,7 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
327343 ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
328344 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
329345
330- ret = umfOpenIPCHandle (pool. get () , ipcHandle, &opened_ptr);
346+ ret = umfOpenIPCHandle (ipcHandler , ipcHandle, &opened_ptr);
331347 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
332348
333349 ret = umfCloseIPCHandle (opened_ptr);
@@ -345,11 +361,22 @@ TEST_P(umfIpcTest, AllocFreeAllocTest) {
345361 EXPECT_EQ (stat.openCount , stat.closeCount );
346362}
347363
348- TEST_P (umfIpcTest, openInTwoPools ) {
364+ TEST_P (umfIpcTest, openInTwoIpcHandlers ) {
349365 constexpr size_t SIZE = 100 ;
350366 std::vector<int > expected_data (SIZE);
351367 umf::pool_unique_handle_t pool1 = makePool ();
352368 umf::pool_unique_handle_t pool2 = makePool ();
369+ umf_ipc_handler_handle_t ipcHandler1 = nullptr ;
370+ umf_ipc_handler_handle_t ipcHandler2 = nullptr ;
371+
372+ umf_result_t ret = umfPoolGetIPCHandler (pool1.get (), &ipcHandler1);
373+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
374+ ASSERT_NE (ipcHandler1, nullptr );
375+
376+ ret = umfPoolGetIPCHandler (pool2.get (), &ipcHandler2);
377+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
378+ ASSERT_NE (ipcHandler2, nullptr );
379+
353380 void *ptr = umfPoolMalloc (pool1.get (), sizeof (expected_data[0 ]) * SIZE);
354381 EXPECT_NE (ptr, nullptr );
355382
@@ -358,15 +385,15 @@ TEST_P(umfIpcTest, openInTwoPools) {
358385
359386 umf_ipc_handle_t ipcHandle = nullptr ;
360387 size_t handleSize = 0 ;
361- umf_result_t ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
388+ ret = umfGetIPCHandle (ptr, &ipcHandle, &handleSize);
362389 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
363390
364391 void *openedPtr1 = nullptr ;
365- ret = umfOpenIPCHandle (pool1. get () , ipcHandle, &openedPtr1);
392+ ret = umfOpenIPCHandle (ipcHandler1 , ipcHandle, &openedPtr1);
366393 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
367394
368395 void *openedPtr2 = nullptr ;
369- ret = umfOpenIPCHandle (pool2. get () , ipcHandle, &openedPtr2);
396+ ret = umfOpenIPCHandle (ipcHandler2 , ipcHandle, &openedPtr2);
370397 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
371398
372399 ret = umfPutIPCHandle (ipcHandle);
@@ -447,6 +474,7 @@ TEST_P(umfIpcTest, ConcurrentGetPutHandles) {
447474}
448475
449476TEST_P (umfIpcTest, ConcurrentOpenCloseHandles) {
477+ umf_result_t ret;
450478 std::vector<void *> ptrs;
451479 constexpr size_t ALLOC_SIZE = 100 ;
452480 constexpr size_t NUM_POINTERS = 100 ;
@@ -462,21 +490,25 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
462490 for (size_t i = 0 ; i < NUM_POINTERS; ++i) {
463491 umf_ipc_handle_t ipcHandle;
464492 size_t handleSize;
465- umf_result_t ret = umfGetIPCHandle (ptrs[i], &ipcHandle, &handleSize);
493+ ret = umfGetIPCHandle (ptrs[i], &ipcHandle, &handleSize);
466494 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
467495 ipcHandles[i] = ipcHandle;
468496 }
469497
470498 std::array<std::vector<void *>, NTHREADS> openedIpcHandles;
499+ umf_ipc_handler_handle_t ipcHandler = nullptr ;
500+ ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
501+ ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
502+ ASSERT_NE (ipcHandler, nullptr );
471503
472504 umf_test::syncthreads_barrier syncthreads (NTHREADS);
473505
474506 auto openHandlesFn = [&ipcHandles, &openedIpcHandles, &syncthreads,
475- &pool ](size_t tid) {
507+ ipcHandler ](size_t tid) {
476508 syncthreads ();
477509 for (auto ipcHandle : ipcHandles) {
478510 void *ptr;
479- umf_result_t ret = umfOpenIPCHandle (pool. get () , ipcHandle, &ptr);
511+ umf_result_t ret = umfOpenIPCHandle (ipcHandler , ipcHandle, &ptr);
480512 ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
481513 openedIpcHandles[tid].push_back (ptr);
482514 }
@@ -495,12 +527,12 @@ TEST_P(umfIpcTest, ConcurrentOpenCloseHandles) {
495527 umf_test::parallel_exec (NTHREADS, closeHandlesFn);
496528
497529 for (auto ipcHandle : ipcHandles) {
498- umf_result_t ret = umfPutIPCHandle (ipcHandle);
530+ ret = umfPutIPCHandle (ipcHandle);
499531 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
500532 }
501533
502534 for (void *ptr : ptrs) {
503- umf_result_t ret = umfPoolFree (pool.get (), ptr);
535+ ret = umfPoolFree (pool.get (), ptr);
504536 EXPECT_EQ (ret, UMF_RESULT_SUCCESS);
505537 }
506538
0 commit comments