Thursday, September 6, 2012

[android-developers] Re: AudioTrack: thread safety of operations?

OK, thanks. So you're basically saying that if I want to call e.g.
pause()+flush() on an AudioTrack, I need to guarantee that write() is
atomic in terms of my pause() and flush() call, right?

To be brief, (per the docs), only a stop() call is allowed to execute
while a write() is in progress. Is this correct?


On Sep 7, 2:05 am, Lew <lewbl...@gmail.com> wrote:
> Tamás Kovács wrote:
>
> > The documentation says that AudioTrack.write() is thread-safe in terms of
> > stop().
>
> > What about the other operations? As far as I can see, e.g. play() and
> > pause() should also be callable from another thread.
>
> > write() is blocking, so it does not make much sense to call pause() from
> > the same thread as write().
>
> > Is it OK to use an own thread for write() and using the other operations
> > (stop, pause, play) from a different thread?
>
> Nearly always, absence of a promise of thread safety is equivalent to a
> promise of thread unsafety.
>
> This is more likely given the care to specify that 'write()' "is thread
> safe with respect to stop()<../../../reference/android/media/AudioTrack.html#stop()>
>  calls"
> specifically. IOW, if it was thread safe for other calls they'd've said so.
>
> We go by the docs, too, so we're unlikely to give you a different answer
> than the Javadocs do.
>
> --
> Lew

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment