MCPcopy Create free account
hub / github.com/mpi4py/mpi4py / testAcquireNonblocking

Method testAcquireNonblocking

test/test_util_sync.py:373–412  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

371 test_acquire_release()
372
373 def testAcquireNonblocking(self):
374 def test_acquire_nonblocking():
375 comm = self.COMM
376 mutex = self.mutex
377 self.assertEqual(mutex.count(), 0)
378 comm.Barrier()
379 locked = mutex.acquire(blocking=False)
380 self.assertEqual(mutex.locked(), locked)
381 comm.Barrier()
382 self.assertEqual(mutex.count(), int(locked))
383 if locked:
384 self.assertEqual(mutex.count(), 1)
385 flag = mutex.acquire(blocking=False)
386 self.assertTrue(flag)
387 self.assertEqual(mutex.count(), 2)
388 flag = mutex.acquire(blocking=True)
389 self.assertTrue(flag)
390 self.assertEqual(mutex.count(), 3)
391 mutex.release()
392 self.assertEqual(mutex.count(), 2)
393 mutex.release()
394 self.assertEqual(mutex.count(), 1)
395 mutex.release()
396 comm.Barrier()
397 self.assertFalse(mutex.locked())
398 self.assertEqual(mutex.count(), 0)
399 states = comm.allgather(locked)
400 self.assertEqual(states.count(True), 1)
401 comm.Barrier()
402 while not mutex.acquire(blocking=False):
403 pass
404 mutex.release()
405 comm.Barrier()
406
407 for _ in range(5):
408 self.COMM.Barrier()
409 test_acquire_nonblocking()
410 for _ in range(5):
411 random_sleep()
412 test_acquire_nonblocking()
413
414 def testAcquireFree(self):
415 mutex = self.mutex

Callers

nothing calls this directly

Calls 1

random_sleepFunction · 0.85

Tested by

no test coverage detected