     
     #if !GCD_ASYNCH && os(Linux)
         /// Wait and process the ready events by invoking the IncomingHTTPSocketHandler's hndleRead function
-        private func process() {
+        private func process(epollDescriptor:Int32) {
             var pollingEvents = [epoll_event](repeating: epoll_event(), count: maximumNumberOfEvents)
         
             while  true  {

    
    #if !GCD_ASYNCH && os(Linux)
        private let maximumNumberOfEvents = 300
    
        private let epollDescriptor: Int32
        private let epollTimeout: Int32 = 50
    
        private let queue = DispatchQueue(label: "IncomingSocketManager")
    
        init() {
            // Note: The parameter to epoll_create is ignored on modern Linux's
            epollDescriptor = epoll_create(100)
        
            queue.async() { [unowned self] in self.process() }
        }
    #endif
    
    /// Handle a new incoming socket
    ///
    /// - Parameter socket: the incoming socket to handle

                var event = epoll_event()
                event.events = EPOLLIN.rawValue | EPOLLOUT.rawValue | EPOLLET.rawValue
                event.data.fd = socket.socketfd
                let result = epoll_ctl(epollDescriptor(fd: socket.socketfd), EPOLL_CTL_ADD, handler.fileDescriptor, &event)
                if  result == -1  {
                    Log.error("epoll_ctl failure. Error code=\(errno). Reason=\(lastError())")
                }
