我们从Python开源项目中,提取了以下23个代码示例,用于说明如何使用thread.reported_process_loaded()。
def __init__(self, id = None): if id is not None: self.id = id else: self.id = thread.get_ident() self._events = {'call' : self.handle_call, 'line' : self.handle_line, 'return' : self.handle_return, 'exception' : self.handle_exception, 'c_call' : self.handle_c_call, 'c_return' : self.handle_c_return, 'c_exception' : self.handle_c_exception, } self.cur_frame = None self.stepping = STEPPING_NONE self.unblock_work = None self._block_lock = thread.allocate_lock() self._block_lock.acquire() self._block_starting_lock = thread.allocate_lock() self._is_blocked = False self._is_working = False self.stopped_on_line = None self.detach = False self.trace_func = self.trace_func # replace self.trace_func w/ a bound method so we don't need to re-create these regularly self.prev_trace_func = None self.trace_func_stack = [] self.reported_process_loaded = False self.django_stepping = None self.is_sending = False # stackless changes if stackless is not None: self._stackless_attach() if sys.platform == 'cli': self.frames = []
def block_maybe_attach(self): will_block_now = True if self.stepping == STEPPING_ATTACH_BREAK: # only one thread should send the attach break in attach_lock.acquire() global attach_sent_break if attach_sent_break: will_block_now = False attach_sent_break = True attach_lock.release() probe_stack() stepping = self.stepping self.stepping = STEPPING_NONE def block_cond(): if will_block_now: if stepping == STEPPING_OVER or stepping == STEPPING_INTO: report_step_finished(self.id) return mark_all_threads_for_break(skip_thread = self) else: if not DETACHED: if stepping == STEPPING_ATTACH_BREAK: self.reported_process_loaded = True return report_process_loaded(self.id) update_all_thread_stacks(self) self.block(block_cond)
def command_resume_thread(self): tid = read_int(self.conn) THREADS_LOCK.acquire() thread = THREADS[tid] THREADS_LOCK.release() if thread.reported_process_loaded: thread.reported_process_loaded = False self.command_resume_all() else: thread.unblock()
def block_maybe_attach(self): will_block_now = True if self.stepping == STEPPING_ATTACH_BREAK: # only one thread should send the attach break in attach_lock.acquire() global attach_sent_break if attach_sent_break: will_block_now = False attach_sent_break = True attach_lock.release() probe_stack() stepping = self.stepping self.stepping = STEPPING_NONE def block_cond(): if will_block_now: if stepping == STEPPING_OVER or stepping == STEPPING_INTO: report_step_finished(self.id) return mark_all_threads_for_break() else: if not DETACHED: if stepping == STEPPING_ATTACH_BREAK: self.reported_process_loaded = True return report_process_loaded(self.id) update_all_thread_stacks(self) self.block(block_cond)
def __init__(self, id = None): if id is not None: self.id = id else: self.id = thread.get_ident() self._events = {'call' : self.handle_call, 'line' : self.handle_line, 'return' : self.handle_return, 'exception' : self.handle_exception, 'c_call' : self.handle_c_call, 'c_return' : self.handle_c_return, 'c_exception' : self.handle_c_exception, } self.cur_frame = None self.stepping = STEPPING_NONE self.unblock_work = None self._block_lock = thread.allocate_lock() self._block_lock.acquire() self._block_starting_lock = thread.allocate_lock() self._is_blocked = False self._is_working = False self.stopped_on_line = None self.detach = False self.trace_func = self.trace_func # replace self.trace_func w/ a bound method so we don't need to re-create these regularly self.prev_trace_func = None self.trace_func_stack = [] self.reported_process_loaded = False self.django_stepping = None # stackless changes if stackless is not None: stackless.set_schedule_callback(self.context_dispatcher) # the tasklets need to be traced on a case by case basis # sys.trace needs to be called within their calling context def __call__(tsk, *args, **kwargs): f = tsk.tempval def new_f(old_f, args, kwargs): sys.settrace(self.trace_func) try: if old_f is not None: return old_f(*args, **kwargs) finally: sys.settrace(None) tsk.tempval = new_f stackless.tasklet.setup(tsk, f, args, kwargs) return tsk def settrace(tsk, tb): if hasattr(tsk.frame, "f_trace"): tsk.frame.f_trace = tb sys.settrace(tb) self.__oldstacklesscall__ = stackless.tasklet.__call__ stackless.tasklet.settrace = settrace stackless.tasklet.__call__ = __call__ if sys.platform == 'cli': self.frames = []