[Fix] Ignore updates if update executor service is shutdown

This commit is contained in:
Robert von Burg 2020-08-11 21:55:00 +02:00
parent a89f0f2d1f
commit f3cb74f199
1 changed files with 9 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import static li.strolch.utils.helper.StringHelper.formatNanoDuration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.LinkedBlockingDeque;
@ -249,14 +250,18 @@ public class DefaultPlcHandler extends StrolchComponent implements PlcHandler, P
} }
private void updateState(PlcAddress address, Object value) { private void updateState(PlcAddress address, Object value) {
if (this.asyncAddressUpdate) if (this.asyncAddressUpdate) {
getExecutorService("PlcAddressUpdater").submit(() -> updatePlcAddress(address, value)); ExecutorService service = getExecutorService("PlcAddressUpdater");
else if (!service.isShutdown())
service.submit(() -> updatePlcAddress(address, value));
} else
updatePlcAddress(address, value); updatePlcAddress(address, value);
} }
private void asyncUpdateState(PlcConnection connection) { private void asyncUpdateState(PlcConnection connection) {
getExecutorService("PlcConnectionUpdater").submit(() -> updateConnectionState(connection)); ExecutorService service = getExecutorService("PlcConnectionUpdater");
if (!service.isShutdown())
service.submit(() -> updateConnectionState(connection));
} }
private void updatePlcAddress(PlcAddress address, Object value) { private void updatePlcAddress(PlcAddress address, Object value) {