]> git.tdb.fi Git - libs/core.git/blobdiff - source/poll.cpp
Allow polling an empty set of objects
[libs/core.git] / source / poll.cpp
index f8f6c5112ff84bcba1ca42195b72d3bdfcd9f5e5..659e2385ff5c5c3dadf0ffea2bde277e1bdfb711 100644 (file)
@@ -7,7 +7,7 @@ Distributed under the LGPL
 #include <errno.h>
 #include <msp/strings/formatter.h>
 #include <msp/time/units.h>
-#include "error.h"
+#include "except.h"
 #include "base.h"
 #include "poll.h"
 
@@ -100,8 +100,6 @@ void Poller::set_object(Base &obj, PollEvent ev)
        if(ev)
                obj.get_event_handle();
 
-       //cout<<"poller set_object "<<&obj<<' '<<ev<<'\n';
-
        SlotMap::iterator i=objects.find(&obj);
        if(i!=objects.end())
        {
@@ -162,14 +160,11 @@ int Poller::do_poll(int timeout)
 
        poll_result.clear();
 
-       if(pfd.empty())
-               throw InvalidState("Nothing to poll");
-
 #ifdef WIN32
        if(timeout<0)
                timeout=INFINITE;
 
-       DWORD ret=WaitForMultipleObjects(pfd.size(), reinterpret_cast<HANDLE *>(&pfd.front()), false, timeout);
+       DWORD ret=WaitForMultipleObjects(pfd.size(), &pfd.front().fd, false, timeout);
        if(/*ret>=WAIT_OBJECT_0 &&*/ ret<WAIT_OBJECT_0+pfd.size())
        {
                SlotMap::iterator i=objects.begin();