• Home
  • Raw
  • Download

Lines Matching +full:id +full:- +full:token

7 # Copyright (c) 2006-2008, R Oudkerk
11 __all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ]
62 class Token(object): class
66 __slots__ = ('typeid', 'address', 'id')
68 def __init__(self, typeid, address, id): argument
69 (self.typeid, self.address, self.id) = (typeid, address, id)
72 return (self.typeid, self.address, self.id)
75 (self.typeid, self.address, self.id) = state
78 return '%s(typeid=%r, address=%r, id=%r)' % \
79 (self.__class__.__name__, self.typeid, self.address, self.id)
85 def dispatch(c, id, methodname, args=(), kwds={}): argument
89 c.send((id, methodname, args, kwds))
112 return ('\n' + '-'*75 + '\n' + str(self.args[0]) + '-'*75)
280 token = Token(typeid, self.address, rident)
281 msg = ('#PROXY', (rexposed, token))
299 util.debug('got EOF -- exiting thread serving %r',
339 Return some info --- useful to spot problems with refcounting
357 # Doesn't use (len(self.id_to_obj) - 1) as we shouldn't count ident='0'
375 Create a new shared object and return its id
384 "Without callable, must have one non-keyword argument")
398 ident = '%x' % id(obj) # convert to string because xmlrpclib
400 util.debug('%r callable returned object with id %r', typeid, ident)
409 def get_methods(self, c, token): argument
411 Return the methods of the shared object indicated by token
413 return tuple(self.id_to_obj[token.id][1])
437 util.debug('Server re-enabled tracking & INCREF %r', ident)
450 "Id {0!s} ({1!r}) has refcount {2:n}, not 1+".format(
453 self.id_to_refcount[ident] -= 1
458 # Two-step process in case the object turns out to contain other
463 self.id_to_obj[ident] = (None, (), None) # thread-safe
464 util.debug('disposing of obj with id %r', ident)
561 self._process.name = type(self).__name__ + '-' + ident
584 # bpo-36368: protect server process from KeyboardInterrupt signals
603 Create a new shared object; return the token and exposed tuple
608 id, exposed = dispatch(conn, None, 'create', (typeid,)+args, kwds)
611 return Token(typeid, self._address, id), exposed
723 token, exp = self._create(typeid, *args, **kwds)
725 token, self._serializer, manager=self,
728 conn = self._Client(token.address, authkey=self._authkey)
729 dispatch(conn, None, 'decref', (token.id,))
755 def __init__(self, token, serializer, manager=None, argument
758 tls_idset = BaseProxy._address_to_local.get(token.address, None)
761 BaseProxy._address_to_local[token.address] = tls_idset
764 # thread to communicate with the manager at token.address
769 # which are in the manager at token.address
772 self._token = token
773 self._id = self._token.id
823 exposed, token = result
824 proxytype = self._manager._registry[token.typeid][-1]
825 token.address = self._token.address
827 token, self._serializer, manager=self._manager,
830 conn = self._Client(token.address, authkey=self._authkey)
831 dispatch(conn, None, 'decref', (token.id,))
843 util.debug('owned_by_manager skipped INCREF of %r', self._token.id)
848 util.debug('INCREF %r', self._token.id)
862 def _decref(token, authkey, state, tls, idset, _Client): argument
863 idset.discard(token.id)
869 util.debug('DECREF %r', token.id)
870 conn = _Client(token.address, authkey=authkey)
871 dispatch(conn, None, 'decref', (token.id,))
876 util.debug('DECREF %r -- manager already shutdown', token.id)
912 (type(self).__name__, self._token.typeid, id(self))
916 Return representation of the referent (or a fall-back if that fails)
921 return repr(self)[:-1] + "; '__str__()' failed>"
927 def RebuildProxy(func, token, serializer, kwds): argument
932 if server and server.address == token.address:
933 util.debug('Rebuild a proxy owned by manager, token=%r', token)
935 if token.id not in server.id_to_local_proxy_obj:
936 server.id_to_local_proxy_obj[token.id] = \
937 server.id_to_obj[token.id]
942 return func(token, serializer, incref=incref, **kwds)
970 def AutoProxy(token, serializer, manager=None, authkey=None, argument
973 Return an auto-proxy for `token`
978 conn = _Client(token.address, authkey=authkey)
980 exposed = dispatch(conn, None, 'get_methods', (token,))
989 ProxyType = MakeProxyType('AutoProxy[%s]' % token.typeid, exposed)
990 proxy = ProxyType(token, serializer, manager=manager, authkey=authkey,
1076 waittime = endtime - time.monotonic()
1286 """Create a new distributed-shared object (not backed by a shared
1287 memory block) and return its id to be used in a Proxy Object."""
1291 if hasattr(self.registry[typeid][-1], "_shared_memory_proxy"):
1319 and for creating a list-like object (ShareableList) backed by shared
1321 that support synchronization across processes (i.e. multi-process-safe
1329 # bpo-36867: Ensure the resource_tracker is running before