Does the Proactor of boost uses edge-triggered epoll on linux?
Hello list, I have some questions about boost's async IO implementation for linux. 1. Does it use edge-triggered epoll to implement the Proactor (in terms of Reactor)? http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/core/async... The guide above says that boost's Proactor is implemented in terms of Reactor when it comes to Linux. If it is based on Reactor, I guess it should be level-triggered epoll. 2. Am I right? Then my question is 3. Does boost use edge-triggered epoll in any kind of async IO on linux? 4. Isn't edge-triggered epoll a good method to implement async IO on linux? Thank you very much. Sincerely Journeyer ---------------------------------------- Journeyer J. Joh o o s a p r o g r a m m e r a t g m a i l d o t c o m ----------------------------------------
I have some questions about boost's async IO implementation for linux.
1. Does it use edge-triggered epoll to implement the Proactor (in terms of Reactor)?
http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/core/async...
The guide above says that boost's Proactor is implemented in terms of Reactor when it comes to Linux.
If it is based on Reactor, I guess it should be level-triggered epoll. 2. Am I right?
Then my question is 3. Does boost use edge-triggered epoll in any kind of async IO on linux? 4. Isn't edge-triggered epoll a good method to implement async IO on linux?
Don't the following notes aswer your question? http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/implementa...
Hi Igor R, I have one answer to your question and one new question for you and other people.
Don't the following notes aswer your question?
1. I am sorry but it is no because there is no statement whether the epoll is edge-triggered or level-triggered. It only said like the one shown below. Linux Kernel 2.6<http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/implementation.html#boost_asio.overview.implementation.linux_kernel_2_6> Demultiplexing mechanism: Uses epoll for demultiplexing. I downloaded latest boost 1.53.0 and searched for epoll_create, epoll_wait, and many socket APIs for linux and windows but failed to find api calls for those. I expected that I would find api calls for those. 2. If it - boost.asio - doesn't call these api, how boost.asio implemens it's functions? Thank you very much. Sincerely Journeyer ---------------------------------------- Journeyer J. Joh o o s a p r o g r a m m e r a t g m a i l d o t c o m ---------------------------------------- 2013/5/29 Igor R <boost.lists@gmail.com>
I have some questions about boost's async IO implementation for linux.
1. Does it use edge-triggered epoll to implement the Proactor (in terms of Reactor)?
http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/core/async...
The guide above says that boost's Proactor is implemented in terms of Reactor when it comes to Linux.
If it is based on Reactor, I guess it should be level-triggered epoll. 2. Am I right?
Then my question is 3. Does boost use edge-triggered epoll in any kind of async IO on linux? 4. Isn't edge-triggered epoll a good method to implement async IO on
linux?
Don't the following notes aswer your question?
http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/implementa... _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
On 2013/5/29, at 23:22, "Journeyer J. Joh" <oosaprogrammer@gmail.com> wrote:
Hi Igor R,
I have one answer to your question and one new question for you and other people.
Don't the following notes aswer your question?
1. I am sorry but it is no because there is no statement whether the epoll is edge-triggered or level-triggered. It only said like the one shown below. Linux Kernel 2.6 Demultiplexing mechanism:
Uses epoll for demultiplexing.
I downloaded latest boost 1.53.0 and searched for epoll_create, epoll_wait, and many socket APIs for linux and windows but failed to find api calls for those.
I expected that I would find api calls for those.
2. If it - boost.asio - doesn't call these api, how boost.asio implemens it's functions?
Thank you very much. Sincerely Journeyer
---------------------------------------- Journeyer J. Joh o o s a p r o g r a m m e r a t g m a i l d o t c o m ----------------------------------------
2013/5/29 Igor R <boost.lists@gmail.com>
I have some questions about boost's async IO implementation for linux.
1. Does it use edge-triggered epoll to implement the Proactor (in terms of Reactor)?
http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/core/async...
The guide above says that boost's Proactor is implemented in terms of Reactor when it comes to Linux.
If it is based on Reactor, I guess it should be level-triggered epoll. 2. Am I right?
Then my question is 3. Does boost use edge-triggered epoll in any kind of async IO on linux? 4. Isn't edge-triggered epoll a good method to implement async IO on linux?
Don't the following notes aswer your question? http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/implementa... _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hi, Check out boost/asio/detail/impl/epoll_reactor.ipp Best Acer
I downloaded latest boost 1.53.0 and searched for epoll_create, epoll_wait, and many socket APIs for linux and windows but failed to find api calls for those.
I expected that I would find api calls for those.
I guess your search doesn't include *.ipp files. Please take a look at boost/boost/asio/detail/impl/epoll_reactor.ipp
Hi Igor R and Yang Acer, I found from where you pointed by grepping $ grep -r "EPOLLET" ./ ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET; $ grep -r "EPOLLIN" ./ ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: ev.events = EPOLLIN | EPOLLERR | EPOLLET; ./boost/asio/detail/impl/epoll_reactor.ipp: static const int flag[max_ops] = { EPOLLIN, EPOLLOUT, EPOLLPRI }; So boost uses edge-triggered manner of epoll And I learned a little of the purpose of ipp. Boost developpers are template gurus! Thank you very much. Sincerely Journeyer ---------------------------------------- Journeyer J. Joh o o s a p r o g r a m m e r a t g m a i l d o t c o m ---------------------------------------- 2013/5/30 Igor R <boost.lists@gmail.com>
I downloaded latest boost 1.53.0 and searched for epoll_create, epoll_wait, and many socket APIs for linux and windows but failed to find api calls for those.
I expected that I would find api calls for those.
I guess your search doesn't include *.ipp files. Please take a look at boost/boost/asio/detail/impl/epoll_reactor.ipp _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (3)
-
Igor R
-
Journeyer J. Joh
-
Yang Acer