diff options
| author | 2026-03-23 12:53:34 +0100 | |
|---|---|---|
| committer | 2026-07-09 09:59:28 +0200 | |
| commit | 632041fa5acc8649e43e3ba61caed0b8e43c11b5 (patch) | |
| tree | 68a667b993384a48670d8a6cccc238468c152461 | |
| parent | 432a3c3c5cbe6d228ff9a9a5f88ae9f94ca25e8d (diff) | |
Tiny refactoring
| -rw-r--r-- | src/main/java/com/it_jaros/network_scanner/Scanner.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/main/java/com/it_jaros/network_scanner/Scanner.java b/src/main/java/com/it_jaros/network_scanner/Scanner.java index 2153fe6..3a4b37c 100644 --- a/src/main/java/com/it_jaros/network_scanner/Scanner.java +++ b/src/main/java/com/it_jaros/network_scanner/Scanner.java @@ -90,7 +90,7 @@ public class Scanner { PortState state = getPortState(target, currentPort); if (state.equals(PortState.OPEN)) { progress.open().incrementAndGet(); - } else if (state.equals(PortState.BLOCKED)) { + } else if (state.equals(PortState.BLOCKED)) { progress.blocked().incrementAndGet(); } return new PortResult(currentPort, state); @@ -104,10 +104,13 @@ public class Scanner { List<Throwable> errors = new ArrayList<>(); for (Future<PortResult> f : futures) { try { + // bitset is not thread-safe, so it is set + // outside the other virtual threads that update progress PortResult portResult = f.get(); - switch (portResult.state()) { - case OPEN -> openPorts.set(portResult.port()); - case BLOCKED -> blockedPorts.set(portResult.port()); + if (portResult.state().equals(PortState.OPEN)) { + openPorts.set(portResult.port()); + } else if (portResult.state().equals(PortState.BLOCKED)) { + blockedPorts.set(portResult.port()); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); |
