acltdtEnqueueData

Description

Adds data to a queue.

Prototype

aclError acltdtEnqueueData(uint32_t qid, const void *data, size_t dataSize, const void *userData, size_t userDataSize, int32_t timeout, uint32_t rsv);

Parameters

Parameter

Input/Output

Description

qid

Input

Queue to which data is to be added.

You must call acltdtCreateQueue to create a queue in advance.

data

Input

Pointer to buffer data. The host buffer or device buffer is supported.

dataSize

Input

Size of buffer data, in bytes.

userData

Input

Pointer to the user-defined data.

If no user-defined data is available, set this parameter to nullptr.

userDataSize

Input

Size of the user-defined data (≤ 96 bytes).

If no user-defined data is available, set this parameter to 0.

timeout

Input

Wait timeout interval. If data is added to a full queue, the system determines how to process the data based on the configured wait timeout interval.

The options are as follows:
  • -1: blocking mode. The system waits until data is successfully added to the queue.
  • 0: non-blocking mode (for device only). When the queue is full, the error indicating that the queue is full is returned. In this case, the retry interval can be set by the user.
  • > 0: specified timeout interval, in ms. When the queue is full, an error is returned after the timeout interval has elapsed. The timeout interval varies with the operating system. The deviation is generally within a time slice of an operating system. For example, if the time slice of an operating system is 4 ms and the value of wait timeout interval is set to 1 ms, the actual timeout interval ranges from 1 ms to 5 ms. When the CPU load is high, the timeout interval may fluctuate.

rsv

Input

Reserved. Value: 0.

Returns

The value 0 indicates success, and other values indicate failure. For details, see aclError.