Using multiple PipedInputStream/PipedOutputStream paris in multiple
threads, the system will get wedged in java.io.PipedInputStream.receive(PipedInputStream.java). It spins the
CPU, with the active thread going between the thread doing the
write, and the clock thread. It seems to be in the P12 clock
thread pretty often (see attached thread dumps).
It's pretty easy to recreate:
- run ~billf/bin/demo
- Ask for the project index (wait a few seconds for object serialization
to happen)
- Click on the "entire class hierarchy" link
- Scroll down to the entry for Type
- Move the window to the right side of the screen, so that the windows
you're about to create won't cover the current window
- Click on the <members> tag for every type listed under Type
This starts up multiple threads, each with a reader/writer pair.
threads, the system will get wedged in java.io.PipedInputStream.receive(PipedInputStream.java). It spins the
CPU, with the active thread going between the thread doing the
write, and the clock thread. It seems to be in the P12 clock
thread pretty often (see attached thread dumps).
It's pretty easy to recreate:
- run ~billf/bin/demo
- Ask for the project index (wait a few seconds for object serialization
to happen)
- Click on the "entire class hierarchy" link
- Scroll down to the entry for Type
- Move the window to the right side of the screen, so that the windows
you're about to create won't cover the current window
- Click on the <members> tag for every type listed under Type
This starts up multiple threads, each with a reader/writer pair.
- duplicates
-
JDK-4028322 java.io.PipedInputStream doesn't reliably support multiple writers
-
- Closed
-