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.6http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/implementa...
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
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"
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
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
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