runWorkerTaskDist

Runs a new asynchronous task in all worker threads concurrently.

This function is mainly useful for long-living tasks that distribute their work across all CPU cores. Only function pointers with weakly isolated arguments are allowed to be able to guarantee thread-safety.

The number of tasks started is guaranteed to be equal to workerThreadCount.

  1. void runWorkerTaskDist(FT func, ARGS args)
  2. void runWorkerTaskDist(shared(T) object, ARGS args)
  3. void runWorkerTaskDist(TaskSettings settings, FT func, ARGS args)
    void
    runWorkerTaskDist
    (
    FT
    ARGS...
    )
    (
    TaskSettings settings
    ,
    FT func
    ,
    auto ref ARGS args
    )
    if (
    is(typeof(*func) == function)
    )
  4. void runWorkerTaskDist(TaskSettings settings, shared(T) object, ARGS args)

Meta