def stop(self): for alarm in self.alarms: alarm.stop(0) for alarm in self.alarms: alarm.stop(1) # wait for parallel threads to stop del self.alarms[:] if self.time is not None: self.time -= now() - self.time_at_start if self.memory is not None: self.memory -= _psyco.memory() - self.memory_at_start try: self.do_stop() except error: return 0 return 1
def start(self): curmem = _psyco.memory() memlimits = [] if self.memorymax is not None: if curmem >= self.memorymax: if logger: logger.writememory() return self.limitreached('memorymax') memlimits.append(self.memorymax) if self.memory is not None: if self.memory <= 0: if logger: logger.writememory() return self.limitreached('memory') memlimits.append(curmem + self.memory) self.memory_at_start = curmem curtime = now() timelimits = [] if self.endtime is not None: if curtime >= self.endtime: return self.limitreached('timemax') timelimits.append(self.endtime - curtime) if self.time is not None: if self.time <= 0.0: return self.limitreached('time') timelimits.append(self.time) self.time_at_start = curtime try: self.do_start() except error, e: if logger: logger.write( '%s: disabled by psyco.error:' % (self.__class__.__name__), 4) logger.write(' %s' % str(e), 3) return 0
def start(self): curmem = _psyco.memory() memlimits = [] if self.memorymax is not None: if curmem >= self.memorymax: if logger: logger.writememory() return self.limitreached('memorymax') memlimits.append(self.memorymax) if self.memory is not None: if self.memory <= 0: if logger: logger.writememory() return self.limitreached('memory') memlimits.append(curmem + self.memory) self.memory_at_start = curmem curtime = now() timelimits = [] if self.endtime is not None: if curtime >= self.endtime: return self.limitreached('timemax') timelimits.append(self.endtime - curtime) if self.time is not None: if self.time <= 0.0: return self.limitreached('time') timelimits.append(self.time) self.time_at_start = curtime try: self.do_start() except error, e: if logger: logger.write('%s: disabled by psyco.error:' % ( self.__class__.__name__), 4) logger.write(' %s' % str(e), 3) return 0
def check_memory(self, limit): if _psyco.memory() < limit: return self.memlimits_args go()
def writememory(): write("memory usage: %d+ kb" % _psyco.memory(), 1)