| Index: net/base/listen_socket.cc
|
| diff --git a/net/base/listen_socket.cc b/net/base/listen_socket.cc
|
| index 8428e06849f0edc1f803a31ed132672e408a4f20..b2185a20081a566dc1d35a8aa89889d985e1eb11 100644
|
| --- a/net/base/listen_socket.cc
|
| +++ b/net/base/listen_socket.cc
|
| @@ -12,7 +12,6 @@
|
| #include <errno.h>
|
| #include <sys/socket.h>
|
| #include <arpa/inet.h>
|
| -#include "base/message_loop.h"
|
| #include "net/base/net_errors.h"
|
| #include "third_party/libevent/event.h"
|
| #endif
|
| @@ -30,12 +29,7 @@ const int SOCKET_ERROR = -1;
|
| const int kReadBufSize = 200;
|
|
|
| ListenSocket::ListenSocket(SOCKET s, ListenSocketDelegate *del)
|
| -#if defined(OS_WIN)
|
| : socket_(s),
|
| -#elif defined(OS_POSIX)
|
| - : event_(new event),
|
| - socket_(s),
|
| -#endif
|
| socket_delegate_(del) {
|
| #if defined(OS_WIN)
|
| socket_event_ = WSACreateEvent();
|
| @@ -177,8 +171,7 @@ void ListenSocket::UnwatchSocket() {
|
| #if defined(OS_WIN)
|
| watcher_.StopWatching();
|
| #elif defined(OS_POSIX)
|
| - MessageLoopForIO::current()->UnwatchSocket(event_.get());
|
| - wait_state_ = NOT_WAITING;
|
| + watcher_.StopWatchingFileDescriptor();
|
| #endif
|
| }
|
|
|
| @@ -187,8 +180,9 @@ void ListenSocket::WatchSocket(WaitState state) {
|
| WSAEventSelect(socket_, socket_event_, FD_ACCEPT | FD_CLOSE | FD_READ);
|
| watcher_.StartWatching(socket_event_, this);
|
| #elif defined(OS_POSIX)
|
| - MessageLoopForIO::current()->WatchSocket(
|
| - socket_, EV_READ|EV_PERSIST, event_.get(),this);
|
| + // Implicitly calls StartWatchingFileDescriptor().
|
| + MessageLoopForIO::current()->WatchFileDescriptor(
|
| + socket_, true, MessageLoopForIO::WATCH_READ, &watcher_, this);
|
| wait_state_ = state;
|
| #endif
|
| }
|
| @@ -250,7 +244,7 @@ void ListenSocket::OnObjectSignaled(HANDLE object) {
|
| }
|
| }
|
| #elif defined(OS_POSIX)
|
| -void ListenSocket::OnSocketReady(short flags) {
|
| +void ListenSocket::OnFileCanReadWithoutBlocking(int fd) {
|
| if (wait_state_ == WAITING_ACCEPT) {
|
| Accept();
|
| }
|
| @@ -262,4 +256,11 @@ void ListenSocket::OnSocketReady(short flags) {
|
| // TODO(erikkay): this seems to get hit multiple times after the close
|
| }
|
| }
|
| +
|
| +void ListenSocket::OnFileCanWriteWithoutBlocking(int fd) {
|
| + // MessagePumpLibevent callback, we don't listen for write events
|
| + // so we shouldn't ever reach here.
|
| + NOTREACHED();
|
| +}
|
| +
|
| #endif
|
|
|