am 2cfd8198
: Merge "Add an option to ALooper::start that allows it to call back into java or not." into gingerbread
Merge commit '2cfd8198cc4e1dcdcae52ae8a0c86b871c87a27e' into gingerbread-plus-aosp * commit '2cfd8198cc4e1dcdcae52ae8a0c86b871c87a27e': Add an option to ALooper::start that allows it to call back into java or not.
This commit is contained in:
@ -39,7 +39,10 @@ struct ALooper : public RefBase {
|
|||||||
handler_id registerHandler(const sp<AHandler> &handler);
|
handler_id registerHandler(const sp<AHandler> &handler);
|
||||||
void unregisterHandler(handler_id handlerID);
|
void unregisterHandler(handler_id handlerID);
|
||||||
|
|
||||||
status_t start(bool runOnCallingThread = false);
|
status_t start(
|
||||||
|
bool runOnCallingThread = false,
|
||||||
|
bool canCallJava = false);
|
||||||
|
|
||||||
status_t stop();
|
status_t stop();
|
||||||
|
|
||||||
static int64_t GetNowUs();
|
static int64_t GetNowUs();
|
||||||
|
@ -31,8 +31,9 @@ namespace android {
|
|||||||
ALooperRoster gLooperRoster;
|
ALooperRoster gLooperRoster;
|
||||||
|
|
||||||
struct ALooper::LooperThread : public Thread {
|
struct ALooper::LooperThread : public Thread {
|
||||||
LooperThread(ALooper *looper)
|
LooperThread(ALooper *looper, bool canCallJava)
|
||||||
: mLooper(looper) {
|
: Thread(canCallJava),
|
||||||
|
mLooper(looper) {
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool threadLoop() {
|
virtual bool threadLoop() {
|
||||||
@ -72,7 +73,7 @@ void ALooper::unregisterHandler(handler_id handlerID) {
|
|||||||
gLooperRoster.unregisterHandler(handlerID);
|
gLooperRoster.unregisterHandler(handlerID);
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t ALooper::start(bool runOnCallingThread) {
|
status_t ALooper::start(bool runOnCallingThread, bool canCallJava) {
|
||||||
if (runOnCallingThread) {
|
if (runOnCallingThread) {
|
||||||
{
|
{
|
||||||
Mutex::Autolock autoLock(mLock);
|
Mutex::Autolock autoLock(mLock);
|
||||||
@ -96,7 +97,7 @@ status_t ALooper::start(bool runOnCallingThread) {
|
|||||||
return INVALID_OPERATION;
|
return INVALID_OPERATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
mThread = new LooperThread(this);
|
mThread = new LooperThread(this, canCallJava);
|
||||||
|
|
||||||
status_t err = mThread->run("ALooper");
|
status_t err = mThread->run("ALooper");
|
||||||
if (err != OK) {
|
if (err != OK) {
|
||||||
|
Reference in New Issue
Block a user