Sha256: d0fc970b6967987fec6ce8e6f13faa4865a588409eca32584ba84d53f5ef57d3

Contents?: true

Size: 685 Bytes

Versions: 17

Compression:

Stored size: 685 Bytes

Contents

module Dynflow
  module DelayedExecutors
    class Abstract

      attr_reader :core

      def initialize(world, options = {})
        @world = world
        @options = options
        spawn
      end

      def start
        @core.ask(:start)
      end

      def terminate
        @core.ask(:terminate!)
      end

      def spawn
        Concurrent.future.tap do |initialized|
          @core = core_class.spawn name: 'delayed-executor',
                                   args: [@world, @options],
                                   initialized: initialized
        end
      end

      private

      def core_class
        raise NotImplementedError
      end

    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
dynflow-1.0.5 lib/dynflow/delayed_executors/abstract.rb
dynflow-1.0.4 lib/dynflow/delayed_executors/abstract.rb
dynflow-1.0.3 lib/dynflow/delayed_executors/abstract.rb
dynflow-1.0.2 lib/dynflow/delayed_executors/abstract.rb
dynflow-1.0.1 lib/dynflow/delayed_executors/abstract.rb
dynflow-1.0.0 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.37 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.36 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.35 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.34 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.33 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.32 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.31 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.30 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.29 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.28 lib/dynflow/delayed_executors/abstract.rb
dynflow-0.8.27 lib/dynflow/delayed_executors/abstract.rb