diff options
Diffstat (limited to 'src/org/gnunet/util/Scheduler.java')
-rw-r--r-- | src/org/gnunet/util/Scheduler.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/org/gnunet/util/Scheduler.java b/src/org/gnunet/util/Scheduler.java index 611467e..0ea9e15 100644 --- a/src/org/gnunet/util/Scheduler.java +++ b/src/org/gnunet/util/Scheduler.java | |||
@@ -391,8 +391,9 @@ public class Scheduler { | |||
391 | 391 | ||
392 | private static void addSubscriberTask(Collection<TaskConfiguration> executableTasks, | 392 | private static void addSubscriberTask(Collection<TaskConfiguration> executableTasks, |
393 | TaskConfiguration[] subscribers, int eventType) { | 393 | TaskConfiguration[] subscribers, int eventType) { |
394 | if (subscribers[eventType] == null) | 394 | if (subscribers[eventType] == null) { |
395 | return; | 395 | return; |
396 | } | ||
396 | executableTasks.add(subscribers[eventType]); | 397 | executableTasks.add(subscribers[eventType]); |
397 | subscribers[eventType].ctx.reasons.add(eventToReason[eventType]); | 398 | subscribers[eventType].ctx.reasons.add(eventToReason[eventType]); |
398 | } | 399 | } |
@@ -570,8 +571,10 @@ public class Scheduler { | |||
570 | 571 | ||
571 | ByteBuffer buffer = ByteBuffer.allocate(256); | 572 | ByteBuffer buffer = ByteBuffer.allocate(256); |
572 | 573 | ||
574 | boolean quit = false; | ||
575 | |||
573 | try { | 576 | try { |
574 | while (true) { | 577 | while (!quit) { |
575 | buffer.clear(); | 578 | buffer.clear(); |
576 | 579 | ||
577 | fileChannel.read(buffer); | 580 | fileChannel.read(buffer); |
@@ -581,17 +584,25 @@ public class Scheduler { | |||
581 | pipe.sink().write(buffer); | 584 | pipe.sink().write(buffer); |
582 | } | 585 | } |
583 | } catch (IOException e) { | 586 | } catch (IOException e) { |
584 | throw new IOError(e); | 587 | quit = true; |
585 | } | 588 | } |
586 | 589 | ||
587 | } | 590 | } |
588 | } | 591 | } |
589 | 592 | ||
590 | 593 | public static FilePipe openFilePipe(File file) { | |
591 | public static FilePipe createFilePipe(File file) { | ||
592 | FilePipeThread fpt = new FilePipeThread(file); | 594 | FilePipeThread fpt = new FilePipeThread(file); |
593 | fpt.setDaemon(true); | 595 | fpt.setDaemon(true); |
594 | fpt.start(); | 596 | fpt.start(); |
595 | return new FilePipe(fpt); | 597 | return new FilePipe(fpt); |
596 | } | 598 | } |
599 | |||
600 | public static class AsyncProcess { | ||
601 | // getIn, getOut, getErr | ||
602 | |||
603 | } | ||
604 | |||
605 | public static AsyncProcess openAsyncProcess(/*...*/) { | ||
606 | throw new UnsupportedOperationException("not implemented yet"); | ||
607 | } | ||
597 | } | 608 | } |