diff --git a/nbproject/project.properties b/nbproject/project.properties index 4649038..bc104ae 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Thu, 20 Dec 2018 09:42:18 +0100 +#Thu, 20 Dec 2018 10:46:44 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/opensesim/trader/SimpleTrader.java b/src/opensesim/trader/SimpleTrader.java index f9e763b..18fa88b 100644 --- a/src/opensesim/trader/SimpleTrader.java +++ b/src/opensesim/trader/SimpleTrader.java @@ -86,8 +86,9 @@ public class SimpleTrader extends AbstractTrader implements EventListener{ @Override public long receive(Event task) { - System.out.printf("Here we are !!! %f\n", getWorld().randNextFloat(12f, 27f)); - getWorld().schedule(this, 5000); + // System.out.printf("Here we are !!! %f\n", getWorld().randNextFloat(12f, 27f)); + System.out.printf("Here we are: %d - %d (%d)\n",Thread.currentThread().getId(),System.nanoTime()/1000,task.t ); + getWorld().schedule(this, 1000); return -1; } diff --git a/src/opensesim/world/scheduler/Event.java b/src/opensesim/world/scheduler/Event.java index 78c07b1..e0330a6 100644 --- a/src/opensesim/world/scheduler/Event.java +++ b/src/opensesim/world/scheduler/Event.java @@ -34,6 +34,8 @@ package opensesim.world.scheduler; EventListener listener; + public long t; + Event(EventListener listener) { this.listener = listener; } diff --git a/src/opensesim/world/scheduler/Scheduler.java b/src/opensesim/world/scheduler/Scheduler.java index 9969ed2..ebf09e9 100644 --- a/src/opensesim/world/scheduler/Scheduler.java +++ b/src/opensesim/world/scheduler/Scheduler.java @@ -49,6 +49,7 @@ public class Scheduler { long delay = getDelay(); if (delay > 0) { + System.out.printf("Worker %d sleeps for %d\n",Thread.currentThread().getId(), delay); synchronized (clock) { try { if (delay != -1 && !clock.isPause()) { @@ -57,9 +58,10 @@ public class Scheduler { clock.wait(); } } catch (InterruptedException e) { - +System.out.printf("Interrupted\n"); } } + continue; } Event e = getNextEvent(); if (e == null) { @@ -73,7 +75,7 @@ public class Scheduler { ArrayList workers; final private Clock clock = new Clock(); - int next = 0; + // int next = 0; public Scheduler(int nthreads) { workers = new ArrayList<>(); @@ -83,7 +85,7 @@ public class Scheduler { } public Scheduler() { - this(1); + this(10); } public void start() { @@ -95,6 +97,7 @@ public class Scheduler { public Event startTimerTask(EventListener listener, long time) { Event e = new Event(listener); long t = time + clock.currentTimeMillis(); + e.t=t; synchronized (event_queue) { LinkedList s = event_queue.get(t); if (s == null) {