Iterate over a snapshot of transaction listeners.

This commit is contained in:
Greyson Parrelli 2022-03-15 12:57:10 -04:00 committed by Cody Henthorne
parent 3ad7c96a3c
commit 172751cd42

View file

@ -13,6 +13,7 @@ import net.zetetic.database.sqlcipher.SQLiteTransactionListener;
import org.signal.core.util.tracing.Tracer; import org.signal.core.util.tracing.Tracer;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
@ -201,7 +202,7 @@ public class SQLiteDatabase {
@Override @Override
public void onCommit() { public void onCommit() {
Set<Runnable> tasks = getPostTransactionTasks(); Set<Runnable> tasks = getPostTransactionTasks();
for (Runnable r : tasks) { for (Runnable r : new HashSet<>(tasks)) {
r.run(); r.run();
} }
tasks.clear(); tasks.clear();