Prevent narrow race condition when resetting network components.
This commit is contained in:
parent
2678a00781
commit
951d4ad06f
1 changed files with 37 additions and 23 deletions
|
@ -95,16 +95,19 @@ public class ApplicationDependencies {
|
|||
}
|
||||
|
||||
public static @NonNull SignalServiceAccountManager getSignalServiceAccountManager() {
|
||||
if (accountManager == null) {
|
||||
SignalServiceAccountManager local = accountManager;
|
||||
|
||||
if (local != null) {
|
||||
return local;
|
||||
}
|
||||
|
||||
synchronized (LOCK) {
|
||||
if (accountManager == null) {
|
||||
accountManager = provider.provideSignalServiceAccountManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return accountManager;
|
||||
}
|
||||
}
|
||||
|
||||
public static @NonNull GroupsV2Authorization getGroupsV2Authorization() {
|
||||
if (groupsV2Authorization == null) {
|
||||
|
@ -152,6 +155,12 @@ public class ApplicationDependencies {
|
|||
}
|
||||
|
||||
public static @NonNull SignalServiceMessageSender getSignalServiceMessageSender() {
|
||||
SignalServiceMessageSender local = messageSender;
|
||||
|
||||
if (local != null) {
|
||||
return local;
|
||||
}
|
||||
|
||||
synchronized (LOCK) {
|
||||
if (messageSender == null) {
|
||||
messageSender = provider.provideSignalServiceMessageSender();
|
||||
|
@ -161,22 +170,24 @@ public class ApplicationDependencies {
|
|||
IncomingMessageObserver.getUnidentifiedPipe(),
|
||||
TextSecurePreferences.isMultiDevice(application));
|
||||
}
|
||||
}
|
||||
|
||||
return messageSender;
|
||||
}
|
||||
}
|
||||
|
||||
public static @NonNull SignalServiceMessageReceiver getSignalServiceMessageReceiver() {
|
||||
if (messageReceiver == null) {
|
||||
SignalServiceMessageReceiver local = messageReceiver;
|
||||
|
||||
if (local != null) {
|
||||
return local;
|
||||
}
|
||||
|
||||
synchronized (LOCK) {
|
||||
if (messageReceiver == null) {
|
||||
messageReceiver = provider.provideSignalServiceMessageReceiver();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return messageReceiver;
|
||||
}
|
||||
}
|
||||
|
||||
public static void resetSignalServiceMessageReceiver() {
|
||||
synchronized (LOCK) {
|
||||
|
@ -301,16 +312,19 @@ public class ApplicationDependencies {
|
|||
}
|
||||
|
||||
public static @NonNull IncomingMessageObserver getIncomingMessageObserver() {
|
||||
if (incomingMessageObserver == null) {
|
||||
IncomingMessageObserver local = incomingMessageObserver;
|
||||
|
||||
if (local != null) {
|
||||
return local;
|
||||
}
|
||||
|
||||
synchronized (LOCK) {
|
||||
if (incomingMessageObserver == null) {
|
||||
incomingMessageObserver = provider.provideIncomingMessageObserver();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return incomingMessageObserver;
|
||||
}
|
||||
}
|
||||
|
||||
public static @NonNull TrimThreadsByDateManager getTrimThreadsByDateManager() {
|
||||
if (trimThreadsByDateManager == null) {
|
||||
|
|
Loading…
Add table
Reference in a new issue