diff --git a/rtc_base/physical_socket_server.cc b/rtc_base/physical_socket_server.cc index 080534af2c..f52701c28d 100644 --- a/rtc_base/physical_socket_server.cc +++ b/rtc_base/physical_socket_server.cc @@ -1205,22 +1205,26 @@ class Signaler : public EventDispatcher { bool* pf_; }; -PhysicalSocketServer::PhysicalSocketServer() : fWait_(false) { +PhysicalSocketServer::PhysicalSocketServer() + : +#if defined(WEBRTC_USE_EPOLL) + // Since Linux 2.6.8, the size argument is ignored, but must be greater + // than zero. Before that the size served as hint to the kernel for the + // amount of space to initially allocate in internal data structures. + epoll_fd_(epoll_create(FD_SETSIZE)), +#endif +#if defined(WEBRTC_WIN) + socket_ev_(WSACreateEvent()), +#endif + fWait_(false) { #if defined(WEBRTC_USE_EPOLL) - // Since Linux 2.6.8, the size argument is ignored, but must be greater than - // zero. Before that the size served as hint to the kernel for the amount of - // space to initially allocate in internal data structures. - epoll_fd_ = epoll_create(FD_SETSIZE); if (epoll_fd_ == -1) { // Not an error, will fall back to "select" below. RTC_LOG_E(LS_WARNING, EN, errno) << "epoll_create"; - epoll_fd_ = INVALID_SOCKET; + // Note that -1 == INVALID_SOCKET, the alias used by later checks. } #endif signal_wakeup_ = new Signaler(this, &fWait_); -#if defined(WEBRTC_WIN) - socket_ev_ = WSACreateEvent(); -#endif } PhysicalSocketServer::~PhysicalSocketServer() { diff --git a/rtc_base/physical_socket_server.h b/rtc_base/physical_socket_server.h index a71810f3db..01e91f33ce 100644 --- a/rtc_base/physical_socket_server.h +++ b/rtc_base/physical_socket_server.h @@ -117,7 +117,7 @@ class RTC_EXPORT PhysicalSocketServer : public SocketServer { bool WaitEpoll(int cms); bool WaitPoll(int cms, Dispatcher* dispatcher); - int epoll_fd_ = INVALID_SOCKET; + const int epoll_fd_ = INVALID_SOCKET; std::vector epoll_events_; #endif // WEBRTC_USE_EPOLL DispatcherSet dispatchers_; @@ -126,10 +126,10 @@ class RTC_EXPORT PhysicalSocketServer : public SocketServer { bool processing_dispatchers_ = false; Signaler* signal_wakeup_; CriticalSection crit_; - bool fWait_; #if defined(WEBRTC_WIN) - WSAEVENT socket_ev_; + const WSAEVENT socket_ev_; #endif + bool fWait_; }; class PhysicalSocket : public AsyncSocket, public sigslot::has_slots<> {