TSContScheduleOnEntirePool

Synopsis

#include <ts/ts.h>
std::vector<TSAction> TSContScheduleOnEntirePool(TSCont contp, TSHRTime timeout, TSThreadPool tp)

Description

Schedules contp to run timeout milliseconds in the future, on all threads that belongs to tp. The timeout is an approximation, meaning it will be at least timeout milliseconds but possibly more. Resolutions finer than roughly 5 milliseconds will not be effective. Note that contp is required to NOT have a mutex, since the continuation is scheduled on multiple threads. This means the continuation must handle synchronization itself.

The return value can be used to cancel the scheduled event via TSActionCancel(). This is effective until the continuation contp is being dispatched. However, if it is scheduled on another thread this can be problematic to be correctly timed. The return value can be checked with TSActionDone() to see if the continuation ran before the return, which is possible if timeout is 0.

Note

Due to scheduling multiple events, the return value is changed to std::vector, as compared to TSAction of the other TSContSchedule APIs.

Note that the TSContSchedule family of API shall only be called from an ATS EThread. Calling it from raw non-EThreads can result in unpredictable behavior.

See Also

TSContScheduleOnPool TSContScheduleOnThread TSContScheduleEveryOnPool TSContScheduleEveryOnThread TSContScheduleEveryOnEntirePool