On Wed, 30 Aug 2023 09:49:39 GMT, Sergey Tsypanov <[email protected]> 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