Example #1
0
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)
Example #2
0
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)
Example #3
0
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()
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
 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()
Example #8
0
    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()
Example #9
0
    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()
Example #10
0
    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()
Example #11
0
    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]
Example #13
0
    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]
Example #14
0
    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"):
Example #15
0
    # 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"):