Class Continuation

  • All Implemented Interfaces:
    java.io.Serializable

    public final class Continuation
    extends java.lang.Object
    implements java.io.Serializable
    This class is used to store and restore the execution state. Any method that takes in this type as a parameter will be instrumented to have its state saved/restored.

    Calls to suspend() will suspend/yield the execution of the coroutine. Calls to setContext(java.lang.Object) / getContext() can be used to pass data back and forth between the coroutine and its caller. All other methods are for internal use by the instrumentation logic and should not be used directly..

    See Also:
    Serialized Form
    • Field Detail

      • MODE_NORMAL

        public static final int MODE_NORMAL
        Do not use -- for internal use only.
        See Also:
        Constant Field Values
      • MODE_SAVING

        public static final int MODE_SAVING
        Do not use -- for internal use only.
        See Also:
        Constant Field Values
      • MODE_LOADING

        public static final int MODE_LOADING
        Do not use -- for internal use only.
        See Also:
        Constant Field Values
      • nextUnloadPointer

        private MethodState nextUnloadPointer
      • firstCutpointPointer

        private MethodState firstCutpointPointer
      • mode

        private int mode
      • context

        private java.lang.Object context
    • Constructor Detail

      • Continuation

        Continuation()
    • Method Detail

      • getMode

        public int getMode()
        Do not use -- for internal use only.
        Returns:
        n/a
      • setMode

        public void setMode​(int mode)
        Do not use -- for internal use only.
        Parameters:
        mode - n/a
      • loadNextMethodState

        public MethodState loadNextMethodState()
        Do not use -- for internal use only.
        Returns:
        n/a
      • unloadCurrentMethodState

        public void unloadCurrentMethodState()
        Do not use -- for internal use only.
      • unloadMethodStateToBefore

        public void unloadMethodStateToBefore​(MethodState methodState)
        Do not use -- for internal use only.
        Parameters:
        methodState - n/a
      • pushNewMethodState

        public void pushNewMethodState​(MethodState methodState)
        Do not use -- for internal use only.
        Parameters:
        methodState - n/a
      • reset

        public void reset()
        Do not use -- for internal use only.
      • successExecutionCycle

        public void successExecutionCycle()
        Do not use -- for internal use only.
      • failedExecutionCycle

        public void failedExecutionCycle()
        Do not use -- for internal use only.
      • suspend

        public void suspend()
        Call to suspend/yield execution.
        Throws:
        java.lang.UnsupportedOperationException - if the caller has not been instrumented
      • getContext

        public java.lang.Object getContext()
        Get the context.
        Returns:
        context
      • setContext

        public void setContext​(java.lang.Object context)
        Set the context.
        Parameters:
        context - context
      • getSaved

        public MethodState getSaved​(int idx)
        Do not use -- for internal use only. For testing.
        Parameters:
        idx - n/a
        Returns:
        n/a
      • getSize

        public int getSize()
        Do not use -- for internal use only. For testing.
        Returns:
        n/a