Пример #1
0
    def _incr(self):
        with self._lock:
            self.res += 1

    def _decr(self):
        with self._lock:
            self.res -= 1

    def __call__(self, thread_id):
        logging.info("Start work for thread {}".format(thread_id))
        time.sleep(random.random() * 2)
        self._decr()
        self.ctb.decr()
        logging.info("Done work for thread {}".format(thread_id))
        return

    @property
    def counter(self) -> int:
        return self.res


if __name__ == "__main__":
    LoggingSetup()
    ntests = 50
    ctb = CountDownBarrier(ntests)
    ttc = SyncMultiThread(count_down_barrier=ctb, num_tests=ntests)
    logging.info("Waiting for all")
    ctb.wait()
    logging.info("All done")
    assert ttc.res == 0
Пример #2
0
 def setUpClass(cls):
     LoggingSetup()
Пример #3
0
 def setUp(cls) -> None:
     LoggingSetup()
Пример #4
0
 def setUpClass(cls):
     LoggingSetup()
     logging.info(
         TestSrcSinkSelectionPolicy._pi_day.strftime("%m.%d%y%H%M%S"))
     return