Previous Next        Current Page: NeXtMidas Training / Primitives / Primitive Restarts / Using Restarts
Start Here   
Background   
Common Midas Concepts   
Getting Started - Part 1   
Getting Started - Part 2   
Working with Files   
Option Trees   
Macros - Part 1 (Basics)   
Macros - Part 2 (Graphics)   
NetBeans - Part 1 (Setup)   
NetBeans - Part 2 (GUIs)   
NetBeans - Part 3 (Profiler)   
Eclipse - Part 1 (Setup)   
Eclipse - Part 2 (GUIs)   
Primitives   
   + Overview   
   + Open, Process, Close   
   + Building   
   + The NeXtMidas API   
   + Lab 1   
   + Special Variables   
   + Lab 2   
   + Lab 3*   
   + Files in a Primitive   
   + Lab 4   
   + Lab 5*   
   + Test Macros   
   + Lab 6   
   + Real Time Controls   
   + Lab 7   
   + Working with Messages   
   + Lab 8   
   - Primitive Restarts   
      - Using Restarts   
      - Control Flow (Restart)   
      - Control Flow (Restart)   
      - Restart-Safe Primitives   
      - Preserving State   
      - Restarting a Primitive   
   + Introduction to DSP   
   + Lab 9   
Applets & WebStart   
Maps & Imagery   
X-Midas Interoperability   
RMIF & Remoting   
Installing NeXtMidas   
Support & Maintenance   
File Handlers   


  • Using Restarts:
    • When is a restart used?
      • Restarts are used when changes to one primitive affect other primitives as well.
      • The most common example is changing the frame size of a pipe while the pipe is running.
        • When the writer of a pipe needs to change one of the fundamental attributes of the pipe it must use a restart since all of the readers of that pipe are also affected.
    • How do I know if a restart is needed?
      • Only the primitive initiating the restart needs to be told that a restart is needed.
      • Any subsequent primitives reading a pipe that was written by a primitive that is being restarted are automatically notified that a restart is needed.
    • Is there a way to alter the way a primitive handles a restart?
      • Yes, this will be discussed in the next few pages.
    • Will any data be lost?
      • No, data will not be lost during a pipe restart, except where a primitive explicitly discards the data.
        • Some primitives only work with a fixed transfer length and may discard data when a restart lies in between two transfer lengths.
    • Is there a way to alter the way a primitive handles a restart?
      • Yes, this will be discussed in the next few pages.