On Saturday 03 June 2006 11:00, Martin Hedenfalk wrote:
> Without looking at the patch or the code, from your description you
> add EV_WRITE directly on the accepted socket. Could that be the reason
> your code spins in the event callback with nothing to do and causing
> CPU usage to rise?
I've started redoing things to avoid EV_WRITE but it's quite problematic in
current tpop3d since it was working in such way:
while (1) {
do_FS_SET(read_fdset);
find_out_if_there_is_something
in_internal_buffers_to_be_written_to_sockets
and_do_FD_SET(write_fdset);
select()
do_processing();
}
It can be replaced only with
evtimer_add(); // fire every 1 second to do the same as
find_out_if_there_is_something in_internal_buffers_to_be_written_to_sockets
() as in previous example; then event_add(EV_WRITE); fi
event_add(EV_READ on listening sockets)
event_dispatch()
unfortunately I have to fire evtimer() thing to add EV_WRITE events. Doesn't
sound good but I see no other way without bigger code refactoring.
> Just a thought.
> /Martin
--
Arkadiusz MiĆkiewicz PLD/Linux Team
arekm / maven.pl http://ftp.pld-linux.org/
_______________________________________________
Libevent-users mailing list
[email protected]
http://monkey.org/mailman/listinfo/libevent-users