def set_points_and_lines(O, args=None): if (args is not None): O.args = args O.draw_map.set_unit_cell_and_density_map(unit_cell=None, density_map=None) O.child_thread = thread_with_callback_and_wait( run=tst_tardy_pdb.run, run_kwds={"args": O.args}, callback=O.action_callback, first_callback=O.first_action_callback) O.child_thread.start_and_wait_for_first_callback()
def exercise_threading() : collected = [] def first_callback(i): collected.append(-i*10) def callback(i): collected.append(i*10) return (i < 5) def run(n=3, callback=None): i = 1 while (callback is not None or i <= n): collected.append(i) if (callback is not None): status = callback(i) if (status == False): break i += 1 run() assert collected == [1,2,3] for callback1,expected in [ (None, [1,10]), (first_callback, [1,-10])]: for n_resume in xrange(7): collected = [] t = thread_with_callback_and_wait( run=run, callback=callback, first_callback=callback1) if (callback1 is None): t.start() else: t.start_and_wait_for_first_callback() for i in xrange(n_resume): t.resume() t.resume(last_iteration=True).join() assert collected == expected if (n_resume < 4): expected.extend([n_resume+2, (n_resume+2)*10])
def set_points_and_lines(self): self.child_thread = thread_with_callback_and_wait( run=motion, callback=self.motion_callback, first_callback=self.first_motion_callback) self.child_thread.start_and_wait_for_first_callback()
def set_points_and_lines(self): self.child_thread = thread_with_callback_and_wait( run = motion, callback = self.motion_callback, first_callback = self.first_motion_callback) self.child_thread.start_and_wait_for_first_callback()