Johannes Weiss

Results 188 issues of Johannes Weiss

When receiving a write error, we run this code https://github.com/apple/swift-nio/blob/5011c409bb462edb5427c9def58b03cd18bdc251/Sources/NIO/BaseSocketChannel.swift#L443-L454 which is draining the read buffer but _only_ if auto-read is enabled. That's probably not right and we should be...

There are things that are blocking and today if you want to farm them out to a background `NIOThreadPool` you need to suddenly start taking a `NIOThreadPool` argument. Given lots...

basically we should revisit this hack: https://github.com/apple/swift-nio/pull/597/files#diff-e492dce95ef7c3d33fceeb7e0b9d211eR335. marking this as 1.10.0 for now but it'll probably be 2.0.0

⚠️ semver/major
kind/administration

While SwiftNIO is more or fairly close to Netty 4.1 there are a few things which differ (in many cases things we want to fix in Netty 5.x as well)....

kind/enhancement

NIO's bootstraps have traditionally _not_ been thread-safe (and therefore aren't `Sendable` either). I'm not so sure anymore if that was historically an accident or deliberate :). FWIW, Netty's are thread-safe:...

### Expected behavior `WebSocketFrame.description` outputs something nice. ### Actual behavior `WebSocketFrame.description` outputs something that's not nice at all ``` WebSocketFrame(_storage: NIOWebSocket.WebSocketFrame.(unknown context at $1084150f8)._Storage, maskKey: nil, firstByte: 138) ``` ###...

kind/bug
good first issue

ByteBuffer has awesome `hexdump(format: .detailed | .plain)` formats (from #2475). They're awesome and I use them all the time. But there's one format that I think is quite useful: A...

kind/enhancement
good first issue
semver/minor

Sometimes I need to write integration tests where I basically just need a connected socket (without doing anything to it). But somewhat later I want to hand this file descriptor...

`_EmittingChannelHandler`, `ChannelInboundHandler` and `ChannelOutboundHandler` define bogus _customisation points_ - `func wrapOutboundOut(_ value: OutboundOut) -> NIOAny` - `func unwrapInboundIn(_ value: NIOAny) -> InboundIn` - `func wrapInboundOut(_ value: InboundOut) -> NIOAny` -...

⚠️ semver/major

### Expected behavior - `channelInactive` comes _after_ `channelActive` - `channelInactive` doesn't happen if `channelActive` hasn't happened ### Actual behavior It's possible to get `channelActive` following `channelInactive`. ### Steps to reproduce...