def run_sync_on_queue(queue)
      raise ArgumentError.new 'Queue must be GBDispatch::Queue' unless queue.is_a? GBDispatch::Queue
      future = queue.await.perform_now ->() { yield }
      future.value
    end
def run_sync_on_queue(queue)
      raise ArgumentError.new 'Queue must be GBDispatch::Queue' unless queue.is_a? GBDispatch::Queue
      future = queue.await.perform_now ->() { yield }
      future.value
    end
Run given block of code on given queue and wait for result.

 This method use {GBDispatch::Queue#perform_now} and wait for result.
 @param queue [GBDispatch::Queue] queue on which block will be executed
 @example sets +my_result+ to 42
   my_queue = GBDispatch::Manager.instance.get_queue :my_queue
   my_result = GBDispatch::Manager.instance.run_sync_on_queue my_queue do
     # my complicated code here
     puts 'Delayed Hello World!'
     # return value
     42
   end