OSDN Git Service

Fix media server restart detection mechanism
authorEric Laurent <elaurent@google.com>
Thu, 18 Jul 2013 00:26:41 +0000 (17:26 -0700)
committerEric Laurent <elaurent@google.com>
Thu, 18 Jul 2013 16:10:56 +0000 (09:10 -0700)
commitca35e4823459189dd57ec5472caf3a617d03b568
treeed63ec1c9208edb055df1cd1fc5eeaf26e576f61
parent713412fd54aba940ff67ab804292a2033681df89
Fix media server restart detection mechanism

There is a flaw in the mechanism used by AudioService
to detect the fact that mediaserver process did crash and restart.
It relies on polling AudioFlinger service until a successful
connection triggers a callback into AudioSystem JNI and then into AudioService.
But if another thread in system_server process, not attached to the
JNI environment, reconnects before AudioService, the callback is called in
a detached context and dropped.

The fix consists in attaching the thread executing the callback
and detaching it if needed.

Bug: 9693068.
Change-Id: I184308b12a3f87653bf818abf0159e0e45a66ef0
core/jni/android_media_AudioSystem.cpp