summaryrefslogtreecommitdiff
path: root/src/DownloadEngineFactory.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-04-19 12:53:58 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-04-19 12:53:58 +0000
commit0ec50a8d506a7d65ecbc937c7451126dd716c125 (patch)
tree1867959d41e8e833c83aad711020ebff8340fe6f /src/DownloadEngineFactory.cc
parent756592bf4d937f63829fcaaafb38e338417eb407 (diff)
2010-04-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Supported poll() for socket event notification. --event-poll can take value "poll". Fixed the bug that timeout for SocketCore::isReadable()/isWritable() is ignored when epoll is used. * src/OptionHandlerFactory.cc * src/a2io.h * src/prefs.h * src/SocketCore.h * src/Makefile.am * src/main.cc * src/PollEventPoll.h * src/SocketCore.cc * src/DownloadEngineFactory.cc * src/PollEventPoll.cc * src/prefs.cc * configure.ac
Diffstat (limited to 'src/DownloadEngineFactory.cc')
-rw-r--r--src/DownloadEngineFactory.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/DownloadEngineFactory.cc b/src/DownloadEngineFactory.cc
index e3f93646..788cf270 100644
--- a/src/DownloadEngineFactory.cc
+++ b/src/DownloadEngineFactory.cc
@@ -61,6 +61,7 @@
#ifdef HAVE_EPOLL
# include "EpollEventPoll.h"
#endif // HAVE_EPOLL
+#include "PollEventPoll.h"
#include "SelectEventPoll.h"
#include "DlAbortEx.h"
#include "FileAllocationEntry.h"
@@ -91,11 +92,16 @@ DownloadEngineFactory::newDownloadEngine
}
} else
#endif // HAVE_EPLL
- if(op->get(PREF_EVENT_POLL) == V_SELECT) {
- eventPoll.reset(new SelectEventPoll());
- } else {
- abort();
- }
+#ifdef HAVE_POLL
+ if(op->get(PREF_EVENT_POLL) == V_POLL) {
+ eventPoll.reset(new PollEventPoll());
+ } else
+#endif // HAVE_POLL
+ if(op->get(PREF_EVENT_POLL) == V_SELECT) {
+ eventPoll.reset(new SelectEventPoll());
+ } else {
+ abort();
+ }
DownloadEngineHandle e(new DownloadEngine(eventPoll));
e->option = op;