summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-03-23 12:53:34 +0100
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commit632041fa5acc8649e43e3ba61caed0b8e43c11b5 (patch)
tree68a667b993384a48670d8a6cccc238468c152461 /src
parent432a3c3c5cbe6d228ff9a9a5f88ae9f94ca25e8d (diff)
Tiny refactoring
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/it_jaros/network_scanner/Scanner.java11
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();