TSContScheduleEveryOnEntirePool

Synopsis

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

Description

Schedules contp to run every milliseconds, on all threads that belongs to tp. The every is an approximation, meaning it will be at least every 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.

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 TSContScheduleOnEntirePool TSContScheduleEveryOnPool TSContScheduleEveryOnThread