Hi,
I use libevent through the libevent-python wrapper.
If it is not the relevant mailing list to ask, please point me to the right
place ;)
I wanted to write an event loop, running in its own thread, while another
thread can do something else.
Whatever I've tried, the first call to 'dispatch' block all the others
threads (from what I understand).
I wrote something like:
def evhello(obj, name):
# dummy callback: print hello every second
print "hello", name
if obj:
obj.addToLoop(timeout=1)
def evstart(name, next=None):
evB = libevent.EventBase() # new base for each thread
event = libevent.createTimer(lambda fd, events, obj: evhello(obj, name))
event.setEventBase(evB)
event.addToLoop(timeout=1)
evB.dispatch()
t0 = threading.Thread(target=evhello, args=(None, 'toto'))
t1 = threading.Thread(target=evstart, args=('toto',))
t2 = threading.Thread(target=evstart, args=('titi',))
t0.start()
time.sleep(3)
# t0 is effectively running ...
t1.start()
time.sleep(3)
# t1 event loop is running ... but t0 STOPed!!!
t2.start()
# ... never reach
Anybody has a clue on the problem?
Is it normal behaviour?
Am I doing something wrong?
_______________________________________________
Libevent-users mailing list
[email protected]
http://monkey.org/mailman/listinfo/libevent-users