mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 19:19:02 -04:00
These socket engines may now recieve write and read events in the same cycle, same as select and poll.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10514 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
a72764949b
commit
2496449155
@ -91,7 +91,7 @@ void EPollEngine::WantWrite(EventHandler* eh)
|
||||
*/
|
||||
struct epoll_event ev;
|
||||
memset(&ev,0,sizeof(ev));
|
||||
ev.events = EPOLLOUT;
|
||||
ev.events = EPOLLIN | EPOLLOUT;
|
||||
ev.data.fd = eh->GetFd();
|
||||
epoll_ctl(EngineHandle, EPOLL_CTL_MOD, eh->GetFd(), &ev);
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ void KQueueEngine::WantWrite(EventHandler* eh)
|
||||
* the original setting rather than adding it twice. See man kqueue.
|
||||
*/
|
||||
struct kevent ke;
|
||||
EV_SET(&ke, eh->GetFd(), EVFILT_WRITE, EV_ADD | EV_ONESHOT, 0, 0, NULL);
|
||||
EV_SET(&ke, eh->GetFd(), EVFILT_READ | EVFILT_WRITE, EV_ADD | EV_ONESHOT, 0, 0, NULL);
|
||||
kevent(EngineHandle, &ke, 1, 0, 0, NULL);
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ bool PortsEngine::AddFd(EventHandler* eh)
|
||||
|
||||
void PortsEngine::WantWrite(EventHandler* eh)
|
||||
{
|
||||
port_associate(EngineHandle, PORT_SOURCE_FD, eh->GetFd(), POLLWRNORM, eh);
|
||||
port_associate(EngineHandle, PORT_SOURCE_FD, eh->GetFd(), POLLRDNORM | POLLWRNORM, eh);
|
||||
}
|
||||
|
||||
bool PortsEngine::DelFd(EventHandler* eh, bool force)
|
||||
|
Loading…
x
Reference in New Issue
Block a user