mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-06 15:20:54 +03:00
cleanup in transport.Heartbeater
This commit is contained in:
@@ -59,29 +59,29 @@ final class Heartbeater
|
|||||||
|
|
||||||
synchronized void setInterval(int interval) {
|
synchronized void setInterval(int interval) {
|
||||||
this.interval = interval;
|
this.interval = interval;
|
||||||
if (interval != 0) {
|
if (interval > 0 && getState() == Thread.State.NEW)
|
||||||
if (!started)
|
|
||||||
start();
|
start();
|
||||||
notify();
|
notify();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
synchronized int getInterval() {
|
synchronized int getInterval() {
|
||||||
return interval;
|
return interval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
synchronized private int getPositiveInterval()
|
||||||
|
throws InterruptedException {
|
||||||
|
while (interval <= 0)
|
||||||
|
wait();
|
||||||
|
return interval;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
log.debug("Starting");
|
||||||
try {
|
try {
|
||||||
while (!Thread.currentThread().isInterrupted()) {
|
while (!Thread.currentThread().isInterrupted()) {
|
||||||
int hi;
|
final int hi = getPositiveInterval();
|
||||||
synchronized (this) {
|
if (trans.isRunning()) {
|
||||||
while ((hi = interval) == 0)
|
|
||||||
wait();
|
|
||||||
}
|
|
||||||
if (!started)
|
|
||||||
started = true;
|
|
||||||
else if (trans.isRunning()) {
|
|
||||||
log.info("Sending heartbeat since {} seconds elapsed", hi);
|
log.info("Sending heartbeat since {} seconds elapsed", hi);
|
||||||
trans.write(new SSHPacket(Message.IGNORE));
|
trans.write(new SSHPacket(Message.IGNORE));
|
||||||
}
|
}
|
||||||
@@ -96,4 +96,5 @@ final class Heartbeater
|
|||||||
|
|
||||||
log.debug("Stopping");
|
log.debug("Stopping");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user