# CmtReleaseTSQReadPtr

int CmtReleaseTSQReadPtr (int queueHandle, int itemsRead);

## Purpose

Releases a pointer to a thread safe queue's internal buffer that you obtained from CmtGetTSQReadPtr.

The space taken up by the data you read from the thread safe queue is not available for writing from another thread until you release the pointer with this function. After you call this function, the pointer is no longer valid. You cannot use an invalid pointer to read data from the thread safe queue.

## Parameters

Input
Name | Type | Description
queueHandle | integer | The handle you obtained from CmtNewTSQ to identify the thread safe queue.
itemsRead | integer | The number of items that you read from the thread safe queue using the read pointer obtained from CmtGetTSQReadPtr. Pass 0 to leave the data in the queue. This allows you to read the same data more than once.

## Return Value

Name | Type | Description
CmtStatus | integer | The CmtStatus code that the function call returns. This function returns 0 to indicate success and negative values to indicate failure. Pass the CmtStatus code to CmtGetErrorMessage to get a description of the error code.