Hello Mark,


Thanks for response.

I am sorry, i understand that libev does not do any IO and actually notifies 
the client programs about readiness of IO.



I will look at libeio, thanks for pointers.



Please see inline, I had few comments.



Thanks

Amit 



On Mon, 17 Sep 2012 12:45:43 +0530  wrote

>On Mon, Sep 17, 2012 at 05:33:44AM -0000, Amit Kumar  wrote:



> I am evaluating libev for regular File I/O (disk based files). Going through 
> few emails on this mailing list and on basis of my understanding of Async I/O 
> behaviour on Linux, I believe:







libev doesn't do any I/O at all, it only notifies of the availability. For



files, this is not very useful (but works, unlike most other event libs



using epoll), because the availability is always known to the kernel, so



asking the kernel just adds overhead.







> (a) True AIO is not supported for disk based regular files as underlying OS 
> does not has support for it. Hence libev does not has support for it as it is 
> essentially an event loop.







linux does support true aio, and so do posix systems implementing posix



aio. the reason it's not implemented in libev is that libev doesn't do



I/O.



[AMIT]>>> Do you mean by aio_read, aio_write and checking status through 
aio_return. I have read at man pages and documentation that it is scalable and 
POSIX threads perhaps are better solution. I also noticed that POSIX Aync I/O 
did not have any update since 2007 and noticed that there were issues about 
thread management and scaling of threads.



> (b) Posix AIO is not integrated with libev.







Right, it would make no sense.







> (c) libev does not use threads for even notifications on Linux (epoll, select 
> are used).







What exactly do you mean with threads for event notification? Start a



thread for each event? That can be done trivially in a callback. Or do



you mean waking up threads instead of calling callbacks? Libev can be



configured to do that, too. Or do you mean gathering events from multiple



threads? That is supported as well.



[AMIT]>>> I am sorry for being very raw in asking the question. My question was 
if libev can be used to notify a thread when I/O is ready. I see that you have 
mentioned this can be done. Can you please point me to the documentation for 
how can a thread be notified on IO being ready.





> PS: I am very new to libev, so please forgive me if i am incorrect here.







If your goal is to do async I/O (for files and similar sources), you can



use libeio, which wraps most of the posix api for asynchronous use, and can



be integrated easily into libev.







-- 



        The choice of a    Deliantra, the free code+content MORPG



   -----==-   _GNU_       http://www.deliantra.net



   ----==-- _    generation



   ---==---(_)__ __ ____ __   Marc Lehmann



   --==---/ / _ \/ // /\ \/ /   schm...@schmorp.de



   -=====/_/_//_/\_,_/ /_/\_\



_______________________________________________
libev mailing list
libev@lists.schmorp.de
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to