# module Channel::SelectAction(S)

##
Defined in:

##
Instance Method Summary

- #create_context_and_wait(shared_state)
- #default_result

  Implementor that returns `Channel::UseDefault` in `#execute` must redefine `#default_result`

- #execute : DeliveryState
- #lock
- #lock_object_id
- #result : S
- #unlock
- #unwait
- #wait(context : SelectContext(S))
- #wait_result(context : SelectContext(S))
- #wait_result(context : SelectContext)

  wait_result overload allow implementors to define wait_result_impl with the right type and Channel.select_impl to allow dispatching over unions that will not happen

- #wait_result_impl(context : SelectContext(S))

##
Instance Method Detail

def create_context_and_wait(shared_state) #
def default_result #

Implementor that returns `Channel::UseDefault` in `#execute` must redefine `#default_result`

abstract def execute : DeliveryState #
abstract def lock #
abstract def lock_object_id #
abstract def result : S #
abstract def unlock #
abstract def unwait #
abstract def wait(context : SelectContext(S)) #
def wait_result(context : SelectContext(S)) #
def wait_result(context : SelectContext) #

wait_result overload allow implementors to define wait_result_impl with the right type and Channel.select_impl to allow dispatching over unions that will not happen

abstract def wait_result_impl(context : SelectContext(S)) #