(self)
| 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 |
nothing calls this directly
no test coverage detected