Johannes Weiss

Results 188 issues of Johannes Weiss

This should be fairly straightforward to implement: We should have a `PipeChannel` that starts with only one file descriptor so is implicitly half-closed on the other one. For more info...

``` 20:40:38 Test Case 'ChannelTests.testConnectWithECONNREFUSEDGetsTheRightError' started at 2019-09-24 19:40:38.146 20:40:38 /code/Tests/NIOTests/ChannelTests.swift:2242: error: ChannelTests.testConnectWithECONNREFUSEDGetsTheRightError : failed - just worked 20:40:38 Test Case 'ChannelTests.testConnectWithECONNREFUSEDGetsTheRightError' failed (0.038 seconds) ``` happened in CI: https://ci.swiftnio.io/job/swift-nio2/316/consoleFull

area/testing

Docs at docs.swiftnio.io are for 2.26.0 but 2.30.0 is released. Probably similar for the other NIO packages.

Now that Swift has a [memory consistency model](https://github.com/apple/swift-evolution/blob/main/proposals/0282-atomics.md), we should clarify how `EventLoop`s and `EventLoopFuture`s tie into that. For example, is the following program correct? ```swift let group = MultiThreadedEventLoopGroup(numberOfThreads:...

Currently, our `SelectableEventLoop` task list is backed by a priority queue, synchronised with locks. In many cases we should be able to dramatically speed enqueuing tasks from other threads up...

performance

Motivation: When getting a `Data` from a `ByteBuffer` we currently allocate twice (`__DataStorage`) and the closure for `Data.Deallocator`. Modifications: We can optimise that by making the closure capture exactly one...

semver/patch

Motivation: If the user passes us a totally wrong fd, we can't do much, we may hit EBADF or so. We should however try to not explode if at least...

patch-version-bump-only

Usually, SwiftNIO binaries should only have direct `malloc` calls in these places: - the `catmc_*` atomics - ByteBuffer where it allocates the actual storage But mostly because of suboptimal coroutine...

performance

Motivation: `testNoChannelReadIfNoAutoRead` from #164 was modified to allow data to be received through `channelRead` for unclear reasons. Modification: Undo the modifications (apart from NIO 2 port). Result: Tighter test case.

I think when programming with pipes, the `Channel` should probably default to `.allowRemoteHalfClosure: true` because it's quite likely that the input is shut down whilst the output is still ongoing....

⚠️ needs-major-version-bump