On Jun 4, 2008, at 4:07 AM, Marc Lehmann wrote:

- use threads to overlap (blocking) network I/O
 with computations

Now, except for the very last suggestion, that's hardly any news to anybody.

And if the last suggestion is meant seriously, then, well, forget about libev, on windows, you do not use non-blocking I/O at all, you don't use
events, you use THREADS.

and that might well be true... to get perfromance out of windows, use
threads. preferably thread pools.

I think they mean that you want to use separate threads for computation and data communication.... With the data communication threads, IIRR, being the same # as CPUs (or something like that)...

I think I recall finding that IOCP either uses a thread-pool or interrupts currently executing code for its callbacks... so you'd have IOCP perform data management and on completion do the minimum amt of work (queue up the data to be processed).

This doesn't quite fit into libev's workflow directly (booo!), though one 'could' create some interesting layers...

Ex: something like libeio's interface could take advantage of some items transparently, or a layer for libev that handles data transport and alerts you to readiness for data available in filled buffers or buffers have room to put data (kinda like the bufferevent abstraction...).

_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to