Beispiel #1
0
 public void StartLink()
 {
     if (!Started)
     {
         Started = true;
         // Create threads as necessary.
         WriteThread = new LinkWriteThread(this, LnkPrt);
         if (LnkPrt.DoesIO || LnkPrt.HasTasks)
         {
             SchedulerThread = new LinkSchedulerThread(this, LnkPrt);
             if (LnkPrt.DoesIO)
             {
                 ReadThread = new LinkReadThread(this, LnkPrt);
             }
         }
         // Now start threads.
         if (ReadThread != null)
         {
             ReadThread.Start();
         }
         if (WriteThread != null)
         {
             WriteThread.Start();
         }
         if (SchedulerThread != null)
         {
             SchedulerThread.Start();
         }
     }
 }
Beispiel #2
0
 public LinkIOThreads(LinkDriver lp)
 {
     LnkPrt          = lp;
     Started         = false;
     SchedulerThread = null;
     ReadThread      = null;
     WriteThread     = null;
 }
Beispiel #3
0
 public void StopLink()
 {
     Started = false;
     if (SchedulerThread != null)
     {
         Primitives.Interrupt(SchedulerThread.Task);
         SchedulerThread = null;
     }
     if (ReadThread != null)
     {
         Primitives.Interrupt(ReadThread.Task);
         ReadThread = null;
     }
     if (WriteThread != null)
     {
         Primitives.Interrupt(WriteThread.Task);
         WriteThread = null;
     }
 }