def fiber_entry(spec)
      loop do
        raise "wrong spec in fiber block" unless spec.is_a?(Hash)

        begin
          before!(spec)
          spec[:block].call# *Fiber.current.args
          after!(spec)

          # catch ArgumentError, IOError, EOFError, IndexError, LocalJumpError, NameError, NoMethodError
          # RangeError, FloatDomainError, RegexpError, RuntimeError, SecurityError, SystemCallError
          # SystemStackError, ThreadError, TypeError, ZeroDivisionError
        rescue StandardError => e
          if error.empty?
            raise Fibre::FiberError.new(e)
          else
            error!(e)
          end
          # catch NoMemoryError, ScriptError, SignalException, SystemExit, fatal etc
          #rescue Exception
        end

        unless @queue.empty?
          spec = @queue.shift
          next
        end

        spec = checkin
      end
    end
def fiber_entry(spec)
      loop do
        raise "wrong spec in fiber block" unless spec.is_a?(Hash)

        begin
          before!(spec)
          spec[:block].call# *Fiber.current.args
          after!(spec)

          # catch ArgumentError, IOError, EOFError, IndexError, LocalJumpError, NameError, NoMethodError
          # RangeError, FloatDomainError, RegexpError, RuntimeError, SecurityError, SystemCallError
          # SystemStackError, ThreadError, TypeError, ZeroDivisionError
        rescue StandardError => e
          if error.empty?
            raise Fibre::FiberError.new(e)
          else
            error!(e)
          end
          # catch NoMemoryError, ScriptError, SignalException, SystemExit, fatal etc
          #rescue Exception
        end

        unless @queue.empty?
          spec = @queue.shift
          next
        end

        spec = checkin
      end
    end
There is entrypoint running fibers