Yes, these APIs are available however only platforms with HW support will show a practical difference in behavior. These APIs are hints to the implementation, which is why you cannot assume you hold the lock until after odp_schedule_order_lock_wait() completes.
On Tue, Sep 4, 2018 at 6:41 AM Yan, Liming (NSB - CN/Hangzhou) < liming....@nokia-sbell.com> wrote: > Hi, > I see in change log: > > Asynchronous ordered locks > Two new APIs, odp_schedule_order_lock_start() and > odp_schedule_order_lock_wait() are added to allow for asynchronous ordered > lock acquisition in addition to the existing synchronous > odp_schedule_order_lock() API. In some implementations and applications, > there may be a performance advantage to indicating the intent to acquire an > ordered lock to allow the implementation to prepare for this while the > application continues parallel processing and then enter the critical > section protected by the ordered lock at a later time. In this case ordered > lock protection is not guaranteed until the odp_schedule_order_lock_wait() > call returns. > > But when I check the APIs code, seems they're still synchronous calling, > similar with schedule_order_lock. Maybe I don't get how to use these APIs. > I didn't see any examples. So my question is, Are those Asynchronous > ordered locks available for use? And how to use them? Thanks very much. > > static void schedule_order_lock_wait(uint32_t lock_index) > { > schedule_order_lock(lock_index); > } > > > > BR > Yan Limin > > > >