Пример #1
0
def run_test():
    counter = Counter()
    ceiling = 1000

    master = IPCLock(is_slave=0)
    slave = IPCLock(master.semaphore_id)

    def ping():
        while True:
            with slave:
                counter.inc()
                if counter.total > ceiling:
                    break

    def pong():
        while True:
            with master:
                counter.inc()
                if counter.total > ceiling:
                    break

    t1 = threading.Thread(target=pong)
    t1.start()

    t2 = threading.Thread(target=ping)
    t2.start()

    t1.join()
    t2.join()
Пример #2
0
    def setUp(self):
        self.paths_to_delete = []

        # make size small so tracebacks get truncated
        path, size, offset = 'task_%s' % guid(), 36, 0
        self.paths_to_delete.append(path)

        self.lock = IPCLock(is_slave=0)
        self.task = IbisTaskMessage(self.lock.semaphore_id, path, offset, size)

        self.mm = SharedMmap(path, size, create=True)
        wire.PackedMessageWriter(self.mm).string('ping')
Пример #3
0
 def setUp(self):
     self.paths_to_delete = []
     self.col_fragments = [double_ex(1000) for _ in range(10)]
     self.lock = IPCLock(is_slave=0)