On Wed, 30 Aug 2023 09:49:39 GMT, Sergey Tsypanov <stsypa...@openjdk.org> wrote:
> Assuming that the value written into `in` is always `-1` we can rid > synchronized block in favour of guarding `in = - 1` with writing into > volatile `closedByReader `: > > public void close() throws IOException { > closedByReader = true; > synchronized (this) { > in = -1; > } > } > > --> > > public void close() throws IOException { > in = -1; > closedByReader = true; > } src/java.base/share/classes/java/io/PipedInputStream.java line 448: > 446: @Override > 447: public void close() throws IOException { > 448: in = -1; I am not sure if this is write thing to do, variable 'in' is accessed from "synchronized void receive(byte[] b, int off, int len)". What if 'close()' is called simultaneously ?. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/15486#discussion_r1310102524