Table of Contents

Class MetalCommandQueueManager

Namespace
DotCompute.Backends.Metal.Execution
Assembly
DotCompute.Backends.Metal.dll

Production-grade command queue manager with priority support and queue pooling. Optimizes concurrent queue usage and tracks performance metrics.

public sealed class MetalCommandQueueManager : IDisposable
Inheritance
MetalCommandQueueManager
Implements
Inherited Members
Extension Methods

Constructors

MetalCommandQueueManager(nint, ILogger, int)

Initializes a new instance of the MetalCommandQueueManager class.

public MetalCommandQueueManager(nint device, ILogger logger, int maxPoolSize = 8)

Parameters

device nint

The Metal device.

logger ILogger

The logger.

maxPoolSize int

Maximum queue pool size per priority. Default is 8.

Methods

Cleanup()

Performs cleanup of idle resources.

public void Cleanup()

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

GetQueue(QueuePriority)

Gets or creates a command queue with the specified priority. Reuses pooled queues when available for better performance.

public nint GetQueue(QueuePriority priority = QueuePriority.Normal)

Parameters

priority QueuePriority

The queue priority.

Returns

nint

A command queue handle.

GetStats()

Gets performance statistics for the queue manager.

public QueueManagerStats GetStats()

Returns

QueueManagerStats

ReturnQueue(nint, QueuePriority)

Returns a command queue to the pool for reuse.

public void ReturnQueue(nint queue, QueuePriority priority = QueuePriority.Normal)

Parameters

queue nint

The command queue to return.

priority QueuePriority

The queue priority.