Beispiel #1
0
    def __enter__(self):
        self.critical = Semaphore(1)
        self._errormon = ErrorMonitor()
        self._slavemon = SlaveMonitor(self._errormon)
        shared = sharedmem.empty((),
                                 dtype=[
                                     ('ordered', 'intp'),
                                     ('barrier', 'intp'),
                                     ('dynamic', 'intp'),
                                 ])

        self._barrier = Barrier(self.num_threads, shared['barrier'][...])
        self._Ordered = MetaOrdered(self, shared['ordered'][...], Semaphore(1))
        self._StaticForLoop = MetaStaticForLoop(self)
        self._DynamicForLoop = MetaDynamicForLoop(self, Semaphore(1),
                                                  shared['dynamic'][...])

        for param in self._variables:
            param.beforefork(self)
        self._fork()
        for param in self._variables:
            param.afterfork(self)
        if self.master:
            self._errormon.start()
            self._slavemon.start()
            LongJump.listen(self)
        return self
Beispiel #2
0
 def __init__(self, n, count):
     self.n = n
     self.count = count
     self.count[...] = 0
     self.mutex = Semaphore(1)
     self.turnstile = Semaphore(0)
     self.turnstile2 = Semaphore(0)
Beispiel #3
0
 def __init__(self, maxsize=0):
     Queue.__init__(self, maxsize)
     self._unfinished_tasks = Semaphore(0)
     self._cond = Condition()
Beispiel #4
0
def Semaphore(value=1):
    """
    Returns a semaphore object
    """
    from multiprocessing.synchronize import Semaphore
    return Semaphore(value)
def Semaphore(value=1):
    from multiprocessing.synchronize import Semaphore
    return Semaphore(value)