queue_pop Subroutine

public subroutine queue_pop(queue, item_idx, has_item)

Arguments

Type IntentOptional Attributes Name
type(queue_t), intent(inout) :: queue
integer(kind=int64), intent(out) :: item_idx
logical, intent(out) :: has_item

Called by

proc~~queue_pop~~CalledByGraph proc~queue_pop queue_pop proc~handle_group_node_requests handle_group_node_requests proc~handle_group_node_requests->proc~queue_pop proc~handle_group_node_requests~2 handle_group_node_requests proc~handle_group_node_requests~2->proc~queue_pop proc~handle_local_worker_requests handle_local_worker_requests proc~handle_local_worker_requests->proc~queue_pop proc~handle_local_worker_requests_group handle_local_worker_requests_group proc~handle_local_worker_requests_group->proc~queue_pop proc~handle_local_worker_requests_group~2 handle_local_worker_requests_group proc~handle_local_worker_requests_group~2->proc~queue_pop proc~handle_node_requests handle_node_requests proc~handle_node_requests->proc~queue_pop proc~global_coordinator_impl global_coordinator_impl proc~global_coordinator_impl->proc~handle_group_node_requests proc~global_coordinator_impl->proc~handle_local_worker_requests_group proc~gmbe_group_global_coordinator gmbe_group_global_coordinator proc~gmbe_group_global_coordinator->proc~handle_group_node_requests~2 proc~gmbe_group_global_coordinator->proc~handle_local_worker_requests_group~2 proc~gmbe_pie_coordinator gmbe_pie_coordinator proc~gmbe_pie_coordinator->proc~handle_group_node_requests~2 proc~gmbe_pie_coordinator->proc~handle_local_worker_requests_group~2 proc~group_global_coordinator_impl group_global_coordinator_impl proc~group_global_coordinator_impl->proc~handle_group_node_requests proc~group_global_coordinator_impl->proc~handle_local_worker_requests_group proc~global_coordinator global_coordinator proc~global_coordinator->proc~global_coordinator_impl proc~gmbe_run_distributed gmbe_context_t%gmbe_run_distributed proc~gmbe_run_distributed->proc~gmbe_group_global_coordinator proc~gmbe_run_distributed->proc~gmbe_pie_coordinator proc~node_coordinator_impl node_coordinator_impl proc~node_coordinator_impl->proc~group_global_coordinator_impl interface~global_coordinator global_coordinator interface~global_coordinator->proc~global_coordinator proc~node_coordinator node_coordinator proc~node_coordinator->proc~node_coordinator_impl interface~node_coordinator node_coordinator interface~node_coordinator->proc~node_coordinator proc~mbe_run_distributed mbe_context_t%mbe_run_distributed proc~mbe_run_distributed->interface~global_coordinator

Source Code

   subroutine queue_pop(queue, item_idx, has_item)
      type(queue_t), intent(inout) :: queue
      integer(int64), intent(out) :: item_idx
      logical, intent(out) :: has_item

      if (queue%head > queue%count) then
         item_idx = -1_int64
         has_item = .false.
         return
      end if

      item_idx = queue%ids(queue%head)
      queue%head = queue%head + 1_int64
      has_item = .true.
   end subroutine queue_pop