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

Commit a8438682 authored by Dmitry Dementyev's avatar Dmitry Dementyev Committed by Gerrit Code Review
Browse files

Merge "Toast: Fix the concurrency problem of mAuthenticator"

parents 927a9ea7 13389cd4
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -4794,6 +4794,7 @@ public class AccountManagerService

    private abstract class Session extends IAccountAuthenticatorResponse.Stub
            implements IBinder.DeathRecipient, ServiceConnection {
        private final Object mSessionLock = new Object();
        IAccountManagerResponse mResponse;
        final String mAccountType;
        final boolean mExpectActivityLaunch;
@@ -4959,11 +4960,13 @@ public class AccountManagerService
        }

        private void unbind() {
            synchronized (mSessionLock) {
                if (mAuthenticator != null) {
                    mAuthenticator = null;
                    mContext.unbindService(this);
                }
            }
        }

        public void cancelTimeout() {
            mHandler.removeMessages(MESSAGE_TIMED_OUT, this);
@@ -4971,6 +4974,7 @@ public class AccountManagerService

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            synchronized (mSessionLock) {
                mAuthenticator = IAccountAuthenticator.Stub.asInterface(service);
                try {
                    run();
@@ -4979,6 +4983,7 @@ public class AccountManagerService
                            "remote exception");
                }
            }
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {