Mercurial > cpython-lru_cache-weakref
diff Lib/multiprocessing/managers.py @ 77442:2d2f206d040e
Issue #14059: Implement multiprocessing.Barrier
| author | Richard Oudkerk <shibturn@gmail.com> |
|---|---|
| date | Fri, 15 Jun 2012 18:26:07 +0100 |
| parents | d31e83497c5a |
| children | 831ae71d0bdc |
line wrap: on
line diff
--- a/Lib/multiprocessing/managers.py Fri Jun 15 19:12:04 2012 +0200 +++ b/Lib/multiprocessing/managers.py Fri Jun 15 18:26:07 2012 +0100 @@ -993,6 +993,26 @@ def wait(self, timeout=None): return self._callmethod('wait', (timeout,)) + +class BarrierProxy(BaseProxy): + _exposed_ = ('__getattribute__', 'wait', 'abort', 'reset') + def wait(self, timeout=None): + return self._callmethod('wait', (timeout,)) + def abort(self): + return self._callmethod('abort') + def reset(self): + return self._callmethod('reset') + @property + def parties(self): + return self._callmethod('__getattribute__', ('parties',)) + @property + def n_waiting(self): + return self._callmethod('__getattribute__', ('n_waiting',)) + @property + def broken(self): + return self._callmethod('__getattribute__', ('broken',)) + + class NamespaceProxy(BaseProxy): _exposed_ = ('__getattribute__', '__setattr__', '__delattr__') def __getattr__(self, key): @@ -1084,6 +1104,7 @@ SyncManager.register('BoundedSemaphore', threading.BoundedSemaphore, AcquirerProxy) SyncManager.register('Condition', threading.Condition, ConditionProxy) +SyncManager.register('Barrier', threading.Barrier, BarrierProxy) SyncManager.register('Pool', Pool, PoolProxy) SyncManager.register('list', list, ListProxy) SyncManager.register('dict', dict, DictProxy)
