摘要:
起因是event_base 跨线程add/remove event 导致崩溃或者死循环。据查:libvent 1.4.x是非线程安全的,要跨线程执行event_add,会有问题。因此传统做法是通过pipe来通知宿主线程执行event_add操作。libevent 2.0.x通过线程锁做到了线程安全,可以跨线程执行event_add。需要在创建event_base之前调用evthread_use_pthreads(),需要添加event_pthread 库,函数定义在event/thread.h//原理参照自http://blog.chinaunix.net/uid-17260303-id-33 阅读全文