Interface AsyncAction<D>

  • All Superinterfaces:
    Action
    All Known Implementing Classes:
    BaseAsyncAction

    public interface AsyncAction<D>
    extends Action

    An AsyncAction allows an activity type to implement asynchronous operations within each thread.

    • Method Summary

      Modifier and Type Method Description
      boolean enqueue​(TrackedOp<D> opc)
      THIS DOCUMENTATION IS LIKELY OUT OF DATE The responsibility for tracking async pending against concurrency limits, including signaling for thread state, has been moved into the async event loop of the core motor.
      java.util.function.LongFunction<D> getOpInitFunction()  
      • Methods inherited from interface io.engineblock.activityapi.core.Action

        init
    • Method Detail

      • getOpInitFunction

        java.util.function.LongFunction<D> getOpInitFunction()
      • enqueue

        boolean enqueue​(TrackedOp<D> opc)
        THIS DOCUMENTATION IS LIKELY OUT OF DATE The responsibility for tracking async pending against concurrency limits, including signaling for thread state, has been moved into the async event loop of the core motor. If this experiment holds, then the docs here must be rewritten to be accurate for that approach. Enqueue a cycle to be executed by the action. This method should block unless or until the action accepts the cycle to be processed. This method is not allowed to reject a cycle. If it is unable to accept the cycle for any reason, it must throw an exception. Since the action implementation is presumed to be running some externally asynchronous process to support the action, it is up to the action itself to control when to block enqueueing. If the action is not actually asynchronous, then it may need to do downstream processing in order to open room in its concurrency limits for the new cycle. Each action implementation is responsible for tracking and controlling its own limits of concurrency. The BaseAsyncAction base class is a convenient starting point for such implementations. If the action is known to have additional open slots for an operations to be started (according to the configured concurrency limits), then it can signal such by returning true from this method.
        Parameters:
        opc - The op context that holds state for this operation
        Returns:
        true, if the action is ready immediately for another operation