Updating the API prototypes a little here to reflect the changes done in the PR.
std::vector<TSAction> TSContScheduleOnEntirePool(TSCont contp, TSHRTime timeout, TSThreadPool tp) std::vector<TSAction> TSContScheduleEveryOnEntirePool(TSCont contp, TSHRTime every, TSThreadPool tp) TSContScheduleOnEntirePool() is used for scheduling a continuation once, on all the threads of thread type tp, with a possible delay specified by timeout. TSContScheduleEveryOnEntirePool() is used for scheduling a continuation at an interval, on all the threads of thread type tp, the interval is specified by every, where every != 0. On Fri, Oct 20, 2023 at 10:59 AM Leif Hedstrom <zw...@apache.org> wrote: > We would need something to allow for one shot calls (eg initializing some > thread local data). > > — Leif > > > On Oct 20, 2023, at 09:11, Fei Deng <duke8...@apache.org> wrote: > > > > We should be able to make it behave like that. But the current > > schedule_every has an assert for (t != 0). > > > >> On Tue, Oct 17, 2023 at 10:09 AM Leif Hedstrom <zw...@apache.org> > wrote: > >> > >> I assume “every” can be zero for a one time shot on every thread of the > >> specified type? > >> > >> — Leif > >> > >>>> On Oct 17, 2023, at 07:26, Fei Deng <f...@yahooinc.com.invalid> > wrote: > >>> > >>> tsapi::c::TSAction > >>> tsapi::c::TSContScheduleEveryOnEntirePool(TSCont contp, TSHRTime every, > >>> TSThreadPool tp); > >>> > >>> With this we can schedule a continuation on all the threads of a > certain > >>> type, e.g. ET_NET, ET_TASK, etc. > >>> > >>> Currently we have a similar capability internally, but only when > spawning > >>> new thread pools > >>> > >>> Event *EventProcessor::schedule_spawn(); > >>> > >>> We probably should also implement a TSContScheduleEvery variant along > >> with > >>> it. > >>> > >>> -- > >>> Regards, > >>> Fei Deng > >> > >