Synchronize reload

pull/146/head
M66B 7 years ago
parent 2224ed8ee9
commit 6f49e81c0c

@ -2251,7 +2251,7 @@ public class ServiceSynchronize extends LifecycleService {
private int queued = 0; private int queued = 0;
private long lastLost = 0; private long lastLost = 0;
private EntityFolder outbox = null; private EntityFolder outbox = null;
private ExecutorService lifecycle = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory); private ExecutorService queue = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory);
private ExecutorService executor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory); private ExecutorService executor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory);
@Override @Override
@ -2435,15 +2435,16 @@ public class ServiceSynchronize extends LifecycleService {
state = null; state = null;
} }
private void queue_reload(final boolean start, String reason) { private void queue_reload(final boolean start, final String reason) {
synchronized (queue) {
final boolean doStop = started; final boolean doStop = started;
final boolean doStart = (start && isEnabled() && suitableNetwork()); final boolean doStart = (start && isEnabled() && suitableNetwork());
EntityLog.log(ServiceSynchronize.this, "Reload start=" + start + EntityLog.log(ServiceSynchronize.this, "Queue reload " +
" doStop=" + doStop + " doStart=" + doStart + " queued=" + queued + " " + reason); " doStop=" + doStop + " doStart=" + doStart + " queued=" + queued + " " + reason);
queued++; queued++;
lifecycle.submit(new Runnable() { queue.submit(new Runnable() {
PowerManager pm = getSystemService(PowerManager.class); PowerManager pm = getSystemService(PowerManager.class);
PowerManager.WakeLock wl = pm.newWakeLock( PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, PowerManager.PARTIAL_WAKE_LOCK,
@ -2451,6 +2452,9 @@ public class ServiceSynchronize extends LifecycleService {
@Override @Override
public void run() { public void run() {
EntityLog.log(ServiceSynchronize.this, "Reload " +
" doStop=" + doStop + " doStart=" + doStart + " queued=" + queued + " " + reason);
try { try {
wl.acquire(); wl.acquire();
@ -2466,6 +2470,8 @@ public class ServiceSynchronize extends LifecycleService {
wl.release(); wl.release();
queued--; queued--;
EntityLog.log(ServiceSynchronize.this, "Reload done queued=" + queued);
if (queued == 0 && !isEnabled()) { if (queued == 0 && !isEnabled()) {
try { try {
Thread.sleep(STOP_DELAY); Thread.sleep(STOP_DELAY);
@ -2482,6 +2488,7 @@ public class ServiceSynchronize extends LifecycleService {
started = doStart; started = doStart;
} }
}
private BroadcastReceiver outboxReceiver = new BroadcastReceiver() { private BroadcastReceiver outboxReceiver = new BroadcastReceiver() {
@Override @Override

Loading…
Cancel
Save