Is DataLine.getMicrosecondPosition() thread-safe?
up vote
0
down vote
favorite
Let's say I use DataLine.write() in one thread and read DataLine.getMicrosecondPosition() in another. Will the reader thread see the updates of the writer thread, or should I synchronize my code to guarantee visibility?
java thread-safety javasound
add a comment |
up vote
0
down vote
favorite
Let's say I use DataLine.write() in one thread and read DataLine.getMicrosecondPosition() in another. Will the reader thread see the updates of the writer thread, or should I synchronize my code to guarantee visibility?
java thread-safety javasound
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Let's say I use DataLine.write() in one thread and read DataLine.getMicrosecondPosition() in another. Will the reader thread see the updates of the writer thread, or should I synchronize my code to guarantee visibility?
java thread-safety javasound
Let's say I use DataLine.write() in one thread and read DataLine.getMicrosecondPosition() in another. Will the reader thread see the updates of the writer thread, or should I synchronize my code to guarantee visibility?
java thread-safety javasound
java thread-safety javasound
asked 17 hours ago
Markus Malkusch
5,3532150
5,3532150
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Just to be clear:
write() is a potentially blocking call that puts data into the line's buffer for rendering. I.e. the line may render the data at some time in the future. From the docs:
The requested number of bytes of data are read from the specified array, starting at the given offset into the array, and written to the data line's buffer.
getMicrosecondPosition () tells you how many microseconds have already been rendered, docs:
The microsecond position measures the time corresponding to the number of sample frames captured by, or rendered from, the line since it was opened.
Both methods should be thread-safe, as there is no warning in the Javadocs.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Just to be clear:
write() is a potentially blocking call that puts data into the line's buffer for rendering. I.e. the line may render the data at some time in the future. From the docs:
The requested number of bytes of data are read from the specified array, starting at the given offset into the array, and written to the data line's buffer.
getMicrosecondPosition () tells you how many microseconds have already been rendered, docs:
The microsecond position measures the time corresponding to the number of sample frames captured by, or rendered from, the line since it was opened.
Both methods should be thread-safe, as there is no warning in the Javadocs.
add a comment |
up vote
0
down vote
Just to be clear:
write() is a potentially blocking call that puts data into the line's buffer for rendering. I.e. the line may render the data at some time in the future. From the docs:
The requested number of bytes of data are read from the specified array, starting at the given offset into the array, and written to the data line's buffer.
getMicrosecondPosition () tells you how many microseconds have already been rendered, docs:
The microsecond position measures the time corresponding to the number of sample frames captured by, or rendered from, the line since it was opened.
Both methods should be thread-safe, as there is no warning in the Javadocs.
add a comment |
up vote
0
down vote
up vote
0
down vote
Just to be clear:
write() is a potentially blocking call that puts data into the line's buffer for rendering. I.e. the line may render the data at some time in the future. From the docs:
The requested number of bytes of data are read from the specified array, starting at the given offset into the array, and written to the data line's buffer.
getMicrosecondPosition () tells you how many microseconds have already been rendered, docs:
The microsecond position measures the time corresponding to the number of sample frames captured by, or rendered from, the line since it was opened.
Both methods should be thread-safe, as there is no warning in the Javadocs.
Just to be clear:
write() is a potentially blocking call that puts data into the line's buffer for rendering. I.e. the line may render the data at some time in the future. From the docs:
The requested number of bytes of data are read from the specified array, starting at the given offset into the array, and written to the data line's buffer.
getMicrosecondPosition () tells you how many microseconds have already been rendered, docs:
The microsecond position measures the time corresponding to the number of sample frames captured by, or rendered from, the line since it was opened.
Both methods should be thread-safe, as there is no warning in the Javadocs.
answered 17 hours ago
hendrik
1,422821
1,422821
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53370948%2fis-dataline-getmicrosecondposition-thread-safe%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown