summaryrefslogtreecommitdiff
path: root/includes/Selectable.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Selectable.h')
-rw-r--r--includes/Selectable.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/includes/Selectable.h b/includes/Selectable.h
index b3b5b8c..8667415 100644
--- a/includes/Selectable.h
+++ b/includes/Selectable.h
@@ -24,14 +24,17 @@ class Selectable : public Handle {
class SelectableEvent : public Events::BaseEvent {
public:
- SelectableEvent(int fd, int evt = ev::READ | ev::WRITE) : m_task(NULL) { Printer::elog(E_SELECT, "Got a new SelectableEvent at %p", this); m_evt.set<SelectableEvent, &SelectableEvent::evt_cb>(this); m_evt.set(fd, evt); }
+ SelectableEvent(int fd, int evt = ev::READ | ev::WRITE) : m_task(NULL), m_evtType(evt), m_fd(fd) { Printer::elog(E_SELECT, "Got a new SelectableEvent at %p", this); m_evt.set<SelectableEvent, &SelectableEvent::evt_cb>(this); m_evt.set(fd, evt); }
virtual ~SelectableEvent() { Printer::elog(E_SELECT, "Destroying a SelectableEvent at %p", this); m_evt.stop(); }
void stop() { Printer::elog(E_SELECT, "Stopping a SelectableEvent at %p", this); reset(); m_evt.stop(); }
private:
void evt_cb(ev::io & w, int revents) { Printer::elog(E_SELECT, "Got a libev callback on a SelectableEvent at %p", this); doSignal(); }
virtual void gotOwner(Task * task);
+ virtual bool relaxed() { return true; }
ev::io m_evt;
+ int m_evtType;
+ int m_fd;
Task * m_task = NULL;
};