fclCommandQPool Derived Type

type, public :: fclCommandQPool

Collection of fclCommandQ objects with round-robin scheduling. Allows easy handling of multiple command queues for parallel kernels data transfers.


Contents


Components

Type Visibility Attributes Name Initial
integer, public :: length

Number of command queues

type(fclCommandQ), public, allocatable :: queues(:)

Array of command queues

integer, public :: idx = 1

Index of current command queue


Type-Bound Procedures

procedure, public, pass :: next => fclCommandQPool_Next

Returns next scheduled queue in queue pool

  • interface

    public module function fclCommandQPool_Next(qPool) result(cmdQ)

    Returns next scheduled queue in queue pool

    Arguments

    Type IntentOptional Attributes Name
    class(fclCommandQPool), intent(inout), target :: qPool

    Return Value type(fclCommandQ), pointer

procedure, public, pass :: current => fclCommandQPool_Current

Returns current scheduled queue in queue pool

  • interface

    public module function fclCommandQPool_Current(qPool) result(cmdQ)

    Returns current scheduled queue in queue pool

    Arguments

    Type IntentOptional Attributes Name
    class(fclCommandQPool), intent(in), target :: qPool

    Return Value type(fclCommandQ), pointer