SIGN IN SIGN UP

Use a non-blocking output stream for socket writes (#1769)

Essentially: Channels.newOutputStream and Channels.newInputStream are synchronizing on the blocking lock provided by the SelectableChannel#blockingLock method. This prevents writing a command to a container stdin while there is no output printed to stdout. This is a long known issue in java and was fixed partially in java 13 (see https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8222774). Concurrent read/writes aren't a problem there anymore as well.

References:

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4509080
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4774871
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6977788
Closes #1768
P
Pasqual Koschmieder committed
e100e2581fd5ffcbfb3b5b65cfcd38b924de9b9a
Parent: 078348f
Committed by GitHub <noreply@github.com> on 2/4/2022, 10:13:16 PM