acltdtBindQueueRoutes

Applicable Products

Product

Supported

Ascend 950PR / Ascend 950DT

√

Atlas A3 training products / Atlas A3 inference products

√

Atlas A2 training products / Atlas A2 inference products

√

Atlas 200I/500 A2 inference products

√

Atlas inference products

√

Atlas training products

√

Function

Binds data forwarding routes between queues when an app requires one-to-many data distribution.

As shown in the following figure, two routes (Q1 -> Q2 and Q1 -> Q3) can be established. When data is distributed in one-to-many mode, the transferred shared buffer data is not locked, and consumers cannot perform the inplace operation on the data. As shown in the following figure, if consumer 1 modifies the shared data, the data accessed by consumer 2 changes.

Prototype

1
aclError acltdtBindQueueRoutes(acltdtQueueRouteList *qRouteList)

Parameters

Parameter

Input/Output

Description

qRouteList

Input/Output

Pointer to the route list. This API call returns the route binding result. For details about the type definition, see acltdtQueueRouteList.

Call acltdtCreateQueueRouteList to create data of the acltdtQueueRouteList type and then call acltdtAddQueueRoute to add routes.

Returns

0 on success; otherwise, failure. For details, see aclError.

This API returns a success message only when all routes in a queue are successfully bound and the route status is normal. If any route fails to be bound, this API returns a failure message. To locate the failure, you can call acltdtGetQueueRoute to obtain each route from the route list and call acltdtGetQueueRouteParam to query the binding status.

Restrictions

  • The system checks whether an added queue route forms a loop. Loops are not allowed.
  • Multi-thread concurrent calling is not supported.