Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b0f6075 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Move stale handler cleanup to constructor

This avoids the potential side effect of deleting more ALoopers
inside the cleanup loop.

Bug: 17059501
Change-Id: I41efaf490449b95fedfe01175f3b19067d50da24
parent 047dd13c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -68,14 +68,14 @@ int64_t ALooper::GetNowUs() {

ALooper::ALooper()
    : mRunningLocally(false) {
    // clean up stale AHandlers. Doing it here instead of in the destructor avoids
    // the side effect of objects being deleted from the unregister function recursively.
    gLooperRoster.unregisterStaleHandlers();
}

ALooper::~ALooper() {
    stop();

    // Since this looper is "dead" (or as good as dead by now),
    // have ALooperRoster unregister any handlers still registered for it.
    gLooperRoster.unregisterStaleHandlers();
    // stale AHandlers are now cleaned up in the constructor of the next ALooper to come along
}

void ALooper::setName(const char *name) {