def safe_func(func, args=tuple(), kw=None, exc=Exception): try: if kw is None: kw = {} return func(*args, **kw) except exc: log.log_except()
def _myfunc(): try: rs = func(*args, **kw) params[0] = rs except StandardError: log.log_except() params[0] = 0 finally: params[1] = 0
def uninit(obj, name): try: o = getattr(obj, name) except AttributeError: return try: if o is not None and hasattr(o, 'uninit'): o.uninit() except: log.log_except() setattr(obj, name, None)
def __contains__ (self, value): if value >= self.len * 32: return False try: index_Hash = value / 32 % self.len index_int = value % 32 if (self.map[index_Hash] & (1<<index_int)): return True else : return False except: log.log_except('map=%s, len=%s, ih=%s, ii=%s, value=%s', self.map, self.len, index_Hash, index_int, value)
def __contains__(self, value): if value >= self.len * 32: return False try: index_Hash = value / 32 % self.len index_int = value % 32 if (self.map[index_Hash] & (1 << index_int)): return True else: return False except: log.log_except('map=%s, len=%s, ih=%s, ii=%s, value=%s', self.map, self.len, index_Hash, index_int, value)
def _spawn_enter(obj, func, *args, **kw): global _globals, _greenlets #防止在game对象stoped后,才运行的微线程启动 if obj is not None and getattr(obj, 'stoped', False): return cur_let = getcurrent() _greenlets[cur_let] = None if obj is not None: #log.debug('****_spawn_enter.begin:%s-%s-%s', func.func_name, id(cur_let), len(_globals)) reg_global_for_let(obj, let=cur_let) try: func(*args, **kw) except GreenletExit: pass except Exception: log.log_except() finally: un_reg_global_for_let(cur_let) _greenlets.pop(cur_let, None)
def _yield_func(): yield seconds * 1000.0 try: spawn(func, *args, **kw) except StandardError: log.log_except()