             } else {
                 didDisconnect()
             }
-            return
         }
     }
 


            if readBuffer!.count >= needed {
                let result = readBuffer!
                item.completion(result)

                readBuffer = nil
                _ = readQueue.removeFirst()
            }

            wantReadEvents = readQueue.count > 0


    private var wantReadEvents = false {
        didSet {
            guard isOpen else { return }
            switch (oldValue, wantReadEvents) {
                case (true, false): rsource.suspend()
                case (false, true): rsource.resume()
