def run_interaction(run_client): s, port = init_server() start_new_thread(handle_request, (s, run_client)) if run_client: start_new_thread(make_request, (port, )) sleep(0.1 + SOCKET_TIMEOUT) #print sys.getrefcount(s.fd) #s.close() return weakref.ref(s.fd)
def run_interaction(run_client): s, port = init_server() start_new_thread(handle_request, (s, run_client)) if run_client: start_new_thread(make_request, (port,)) sleep(0.1+SOCKET_TIMEOUT) #print sys.getrefcount(s.fd) #s.close() return weakref.ref(s.fd)
def newtask(): global next_ident, running mutex.acquire() next_ident = next_ident + 1 if verbose: print 'creating task', next_ident thread.start_new_thread(task, (next_ident, )) running = running + 1 mutex.release()
def newtask(): global next_ident, running mutex.acquire() next_ident = next_ident + 1 if verbose: print 'creating task', next_ident thread.start_new_thread(task, (next_ident,)) running = running + 1 mutex.release()
def run(self): """ starts the listener thread """ try: self.status = 'alive' self.thread = thread.start_new_thread(self.function.listen, ()) except: traceback.print_exc(10)
def run(self): """ runs the thread """ try: self.status = 'alive' self.thread = thread.start_new_thread(self.function, args = self.f_args, kwargs = self.f_kw) except: traceback.print_exc(10)
def test_simple(self): tls = thread._local() g_ids = [] evt = event.Event() def setter(tls, v): g_id = id(greenthread.getcurrent()) g_ids.append(g_id) tls.value = v evt.wait() thread.start_new_thread(setter, args=(tls, 1)) thread.start_new_thread(setter, args=(tls, 2)) eventlet.sleep() objs = object.__getattribute__(tls, "__objs") self.failUnlessEqual(sorted(g_ids), sorted(objs.keys())) self.failUnlessEqual(objs[g_ids[0]]['value'], 1) self.failUnlessEqual(objs[g_ids[1]]['value'], 2) self.failUnlessRaises(AttributeError, lambda: tls.value) evt.send("done") eventlet.sleep()
def test_simple(self): tls = thread._local() g_ids = [] evt = event.Event() def setter(tls, v): g_id = id(greenthread.getcurrent()) g_ids.append(g_id) tls.value = v evt.wait() thread.start_new_thread(setter, args=(tls, 1)) thread.start_new_thread(setter, args=(tls, 2)) eventlet.sleep() objs = object.__getattribute__(tls, "__objs") assert sorted(g_ids) == sorted(objs.keys()) assert objs[g_ids[0]]['value'] == 1 assert objs[g_ids[1]]['value'] == 2 assert getattr(tls, 'value', None) is None evt.send("done") eventlet.sleep()
def _setUp(self): self.server_ready = threading.Event() self.client_ready = threading.Event() self.done = threading.Event() self.queue = Queue.Queue(1) # Do some munging to start the client test. methodname = self.id() i = methodname.rfind('.') methodname = methodname[i+1:] test_method = getattr(self, '_' + methodname) self.client_thread = thread.start_new_thread( self.clientRun, (test_method,)) self.__setUp() if not self.server_ready.isSet(): self.server_ready.set() self.client_ready.wait()
def _setUp(self): self.server_ready = threading.Event() self.client_ready = threading.Event() self.done = threading.Event() self.queue = Queue.Queue(1) # Do some munging to start the client test. methodname = self.id() i = methodname.rfind('.') methodname = methodname[i + 1:] test_method = getattr(self, '_' + methodname) self.client_thread = thread.start_new_thread(self.clientRun, (test_method, )) self.__setUp() if not self.server_ready.isSet(): self.server_ready.set() self.client_ready.wait()
def test_foreign_thread(self): # Check that a "foreign" thread can use the threading module. def f(mutex): # Acquiring an RLock forces an entry for the foreign # thread to get made in the threading._active map. r = threading.RLock() r.acquire() r.release() mutex.release() mutex = threading.Lock() mutex.acquire() tid = thread.start_new_thread(f, (mutex,)) # Wait for the thread to finish. mutex.acquire() self.assert_(tid in threading._active) self.assert_(isinstance(threading._active[tid], threading._DummyThread)) del threading._active[tid]
def test_foreign_thread(self): # Check that a "foreign" thread can use the threading module. def f(mutex): # Acquiring an RLock forces an entry for the foreign # thread to get made in the threading._active map. r = threading.RLock() r.acquire() r.release() mutex.release() mutex = threading.Lock() mutex.acquire() tid = thread.start_new_thread(f, (mutex, )) # Wait for the thread to finish. mutex.acquire() self.assert_(tid in threading._active) self.assert_(isinstance(threading._active[tid], threading._DummyThread)) del threading._active[tid]
running -= 1 # Must release mutex before releasing done, else the main thread can # exit and set mutex to None as part of global teardown; then # mutex.release() raises AttributeError. finished = running == 0 mutex.release() if finished: done.release() print '\n*** Barrier Test ***' if done.acquire(0): raise ValueError, "'done' should have remained acquired" bar = barrier(numtasks) running = numtasks for i in range(numtasks): thread.start_new_thread(task2, (i,)) done.acquire() print 'all tasks done' if hasattr(thread, 'stack_size'): # not all platforms support changing thread stack size print '\n*** Changing thread stack size ***' if thread.stack_size() != 0: raise ValueError, "initial stack_size not 0" thread.stack_size(0) if thread.stack_size() != 0: raise ValueError, "stack_size not reset to default" from os import name as os_name if os_name in ("nt", "os2", "posix"):
# Must release mutex before releasing done, else the main thread can # exit and set mutex to None as part of global teardown; then # mutex.release() raises AttributeError. finished = running == 0 mutex.release() if finished: done.release() print '\n*** Barrier Test ***' if done.acquire(0): raise ValueError, "'done' should have remained acquired" bar = barrier(numtasks) running = numtasks for i in range(numtasks): thread.start_new_thread(task2, (i, )) done.acquire() print 'all tasks done' if hasattr(thread, 'stack_size'): # not all platforms support changing thread stack size print '\n*** Changing thread stack size ***' if thread.stack_size() != 0: raise ValueError, "initial stack_size not 0" thread.stack_size(0) if thread.stack_size() != 0: raise ValueError, "stack_size not reset to default" from os import name as os_name if os_name in ("nt", "os2", "posix"):