Previous Next        Current Page: NeXtMidas Training / Primitives / Primitive Restarts / Control Flow (Restart)
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   


  • Control flow during a restart:
    • When the a primitive restarts, it closes any pipes it has open (this is done in the close() method).
    • As the pipes are closed, they get marked as needing a restart (this is done automatically).
    • As subsequent primitives reach the point in the pipe where the restart was called, the read(..) method returns end-of-file (EOF), numRead<0, and marks the primitive for a restart.
    • These primitives restart and trigger any additional restarts "down the line." The result is like a waterfall with subsequent primitives restarting as needed.
    Click image for larger view.