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