Hi, Everyone:<br>I use libev in my network server.<br>I have one main thread with default event loop for bind/listen/accept, then dispatch the cilent fd to 4 worker thread, using ev_async and a blocking queue. Each of the worker has a ev_base_new(0). Worker monitor the client fd&#39;s EV_READ and EV_WRITE, parsing data into data structure, write response back, in ansyc-callback way.<br>
<br>Everything goes will when startup. After several client connections, the CPU are higher and higher. Something must be wrong.<br>1. I kill -SIGSEGV the process, gdb it, found it&#39;s busy on epoll_wait()<br>2. I use strace/lstrace -f -p the process, it&#39;s also busy on epoll_wait()<br>
3. After a lot of client connections, libev abort with: libev: cannot allocate 2147479536 bytes, aborting.<br>4. the epoll_wait() somethings are empty, somethings has 1 or 2 or more active fd&#39;s POLL_IN or POLL_OUT not handled, but i haven&#39;t receive any callback call<br>
5. The one-thread version is ok.<br>6. I guess, that maybe something wrong when i using libev in mutil-thread env, or some fd are wrongly closed, or some fd are missing but events continue coming.<br><br>Sorry for my english.<br>
<br>Could anyone help? <br><br><br><br>