Closed weissi closed 23 hours ago
Yes, there's no dispute about this. They have always historically broken the rules, and that remains true today.
Yes, there's no dispute about this. They have always historically broken the rules, and that remains true today.
Right, I have no idea why we didn't put that into NIO 1.0... The real selectors (kqueue/epoll/uring) do actually have myThread
and are asserting it -- despite the fact that they really don't need it, that would be an insane bug if that ever failed :P
@Lukasa Do you think this needs to be staged with a NIO_STRICT
thing? This might break random test suites
Yeah, I think it does. Environment variable is an option, another option is to just have a static flag on EmbeddedEventLoop
that you can use to flip the behaviour..
Yeah, I think it does. Environment variable is an option, another option is to just have a static flag on
EmbeddedEventLoop
that you can use to flip the behaviour..
cool, done
EmbeddedChannel
&EmbeddedEventLoop
currently violateSendable
. They should store the current thread ininit
and then implementinEventLoop
withprecondition(self.myThread == Thread.current); return true
.Otherwise, EmbeddedChannel/EventLoop are just trivially violating the rules.