You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ja...@apache.org on 2014/06/04 21:10:21 UTC
[3/4] git commit: KARAF-3021 - Keyboard still read after log:tail
cancelled
KARAF-3021 - Keyboard still read after log:tail cancelled
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/8c60f0e6
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/8c60f0e6
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/8c60f0e6
Branch: refs/heads/karaf-3.0.x
Commit: 8c60f0e6ad9fdeeb89fd26db2de4e032621ab9fa
Parents: b9cecab
Author: Jonathan Anstey <ja...@gmail.com>
Authored: Wed Jun 4 16:34:21 2014 -0230
Committer: Jonathan Anstey <ja...@gmail.com>
Committed: Wed Jun 4 16:34:21 2014 -0230
----------------------------------------------------------------------
.../java/org/apache/karaf/log/command/LogTail.java | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/8c60f0e6/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java b/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
index 93ae14a..25ccfd6 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
@@ -31,8 +31,11 @@ public class LogTail extends DisplayLog {
protected Object doExecute() throws Exception {
PrintEventThread printThread = new PrintEventThread();
+ ReadKeyBoardThread readKeyboardThread = new ReadKeyBoardThread(this, Thread.currentThread());
+
executorService.execute(printThread);
- new Thread(new ReadKeyBoardThread(this, Thread.currentThread())).start();
+ executorService.execute(readKeyboardThread);
+
while (!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(200);
@@ -41,6 +44,7 @@ public class LogTail extends DisplayLog {
}
}
printThread.abort();
+ readKeyboardThread.abort();
executorService.shutdownNow();
return null;
}
@@ -48,12 +52,18 @@ public class LogTail extends DisplayLog {
class ReadKeyBoardThread implements Runnable {
private LogTail logTail;
private Thread sessionThread;
+ boolean readKeyboard = true;
public ReadKeyBoardThread(LogTail logtail, Thread thread) {
this.logTail = logtail;
this.sessionThread = thread;
}
+
+ public void abort() {
+ readKeyboard = false;
+ }
+
public void run() {
- for (;;) {
+ while (readKeyboard) {
try {
int c = this.logTail.session.getKeyboard().read();
if (c < 0) {