InterruptibleChannel's in Netbeans

WigBaM <[email protected]> Mon, 26 Feb 2007 17:36:57 +0000
Newsgroups gmane.comp.java.netbeans.general.russian
Message-ID <[email protected]>
Привет,

Вот ломал голову себе вчера почему это не работало! Часа 2. Потом
догадался запустить программу не через Бинз, а напрямую из шелла и
всё заработало! Ну что за дела такие? Почему Бинз не прерывает
ввод по InterruptibleChannel? Код в сушности такой:

static BufferedReader in = new BufferedReader(
        new InputStreamReader(
        Channels.newInputStream(
        (new FileInputStream(FileDescriptor.in)).getChannel())));
try {
   (new TimeOut()).start();
   while (in.readLine() != null);
   } catch (Exception ex) {/*exit app*/}

public static class TimeOut extends Thread {
        Thread threadToInterrupt = null;
        public TimeOut() { threadToInterrupt = Thread.currentThread(); }
        public void run() {
            try { sleep(5000); }
            catch(InterruptedException ex) {/*ignore*/}
            threadToInterrupt.interrupt();
        }
    }

Даже когда прерывание произошло Бинз продолжает ждать ввод, и только
когда введена какая-нибудь строка это прерывание срабатывает. Если
запускать из под шелла, то всё работает как надо, прерывание после 5
секунд срабатывает и программа завершается. Есть идеи почему Бинз
себя так плохо ведёт?

-- 
Best regards,
 Степан К.                         mailto:[email protected]


		
___________________________________________________________ 
Now you can scan emails quickly with a reading pane. Get the new Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html