<Sound Dev>  Review Request: 8178403 DirectAudio in JavaSound may hang and leak
sergey.bylokhov at oracle.com
Wed Jul 5 18:06:39 UTC 2017
> thread is assigned on creation and we are checking it in run() so
> (thread == curThread) seems like it must be true until somehow
> implClose() is called :
> So why not just check if (thread == null) instead ?
This is because we assign the "thread" in the open() method, not in the constructor. If the user will call open->close->open, then two threads will be created (the first thread should be stopped after the close() was called).
> And when can oldThread will be null ? If someone called stop twice ?
If open() was not called.
> And why is there no thread = null assignment in implClose() ?
It is there:
1300 Thread oldThread = thread;
1301 thread = null;
> Shouldn't you update the test to add this new bug id ?
Yes, it should:
More information about the sound-dev