acltdtBindQueueRoutes

Applicability

Product

Supported

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

Description

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

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.

Call acltdtCreateQueueRouteList to create data of the acltdtQueueRouteList type, and then call acltdtAddQueueRoute to add a route.

Returns

0 on success; else, 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.