Changeset 76


Ignore:
Timestamp:
Jan 7, 2010, 9:35:14 AM (14 years ago)
Author:
(none)
Message:
 
Location:
proiecte/ptvs/src/vnsim/core
Files:
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • proiecte/ptvs/src/vnsim/core/Engine.java

    r61 r76  
    653653                int numThreads=intersectii.size();
    654654               
    655                 EventProcessingThread processingThreads[] = new EventProcessingThread[numThreads];
    656                
     655                //v1
     656                Runnable processingThreads[] = new Runnable[numThreads];
     657                //
    657658               
    658659                while (true) {
     
    665666                        // extrag un eveniment din coada !!!!! acum doar il extrag.. cand intru in playEvent il si scot cu remove(0)
    666667                        Event e = (Event) eventQueue.get(0);
     668                        if (e == null) continue;
    667669                        System.out.println("\n----------- number of events in the queue:"+eventQueue.size() );
    668670                       
     
    675677               
    676678                        if((e instanceof SendEvent) || (e instanceof ReceiveEvent)){
    677                                
     679                                e = (Event)eventQueue.remove(0);
    678680                                /**
    679681                                 * Mihaela Teler
     
    726728                                               
    727729                                                        System.out.print("SendEvent: ");
    728                                                         processingThreads[indexClosestIntersection] = new SendEventProcessingThread(e,crtTime);
     730                                                        processingThreads[indexClosestIntersection] = new SendEventProcessingThread(e,this);
    729731                                                }
    730732                                        else {                                 
    731733                                                        System.out.print("ReceiveEvent: ");
    732                                                         processingThreads[indexClosestIntersection] = new ReceiveEventProcessingThread(e,crtTime);
     734                                                        processingThreads[indexClosestIntersection] = new ReceiveEventProcessingThread(e,this);
    733735                                                }
    734736                                       
    735737                                        System.out.println("Processing thread "+indexClosestIntersection+" from intersection "+intersectii.get(indexClosestIntersection));
    736738                                        //processingThreads[indexClosestIntersection].start();// cu start nu merge ... why????
    737                                         processingThreads[indexClosestIntersection].run();
     739                                        new Thread(processingThreads[indexClosestIntersection]).start();
    738740                                        cnt++;
    739741                                }
     
    743745                       
    744746                        else if (e.getTime() == crtTime) {
    745                                 playEvent();
     747                                playEvent(null);
    746748                                cnt++;
    747749                        } else
     
    988990         *
    989991         */
    990         public static void playEvent() {
     992        public void playEvent(Event ev) {
    991993               
    992994                //System.out.println(">> Thread:"+Thread.currentThread().getName());
     
    9981000
    9991001                Event e = null;
     1002                if (ev == null) {
    10001003                synchronized (eventQueue) {
    10011004                        e = eventQueue.remove(0);
    10021005                }
     1006                } else e = ev;
    10031007                //System.out.print(e.toString()+", ");
    10041008                //System.out.flush();
  • proiecte/ptvs/src/vnsim/core/ReceiveEventProcessingThread.java

    r40 r76  
    55
    66
    7 public class ReceiveEventProcessingThread extends Thread implements EventProcessingThread{
     7public class ReceiveEventProcessingThread implements Runnable {
    88       
    9         ReceiveEvent e;
    10         int crtTime;
     9        final ReceiveEvent e;
     10        final Engine engine;
    1111       
    1212       
    13         public ReceiveEventProcessingThread(Event e, int crtTime){
     13        public ReceiveEventProcessingThread(Event e, Engine engine){
    1414                this.e=(ReceiveEvent)e;
    15                 this.crtTime=crtTime;
     15                this.engine=engine;
    1616               
    1717        }
     
    1919        public void run() {
    2020               
    21                 Engine.playEvent();
     21                engine.playEvent(e);
    2222       
    2323        }
  • proiecte/ptvs/src/vnsim/core/SendEventProcessingThread.java

    r41 r76  
    55
    66
    7 public class SendEventProcessingThread extends Thread implements EventProcessingThread{
     7public class SendEventProcessingThread implements Runnable{
    88       
    99        SendEvent e;
    10         int crtTime;
     10        Engine engine;
    1111       
    1212       
    13         public SendEventProcessingThread(Event e, int crtTime){
     13        public SendEventProcessingThread(Event e, Engine engine){
    1414                this.e=(SendEvent)e;
    15                 this.crtTime=crtTime;
     15                this.engine=engine;
    1616               
    1717        }
     
    1919        public void run() {
    2020               
    21                         Engine.playEvent();
     21                        engine.playEvent(e);
    2222               
    2323        }
Note: See TracChangeset for help on using the changeset viewer.