kphp icon indicating copy to clipboard operation
kphp copied to clipboard

implement wait queue

Open astrophysik opened this issue 6 months ago • 0 comments

General

add buildin functions from runtime realted to wait fork queue

function wait_queue_create (array<future<any> | false> $request_ids = []) ::: future_queue<^1[*][*]>;
function wait_queue_push (future_queue<any> &$queue_id, future<any> | false $request_ids) ::: void;
function wait_queue_empty (future_queue<any> $queue_id) ::: bool;
/** @kphp-extern-func-info interruptible */
function wait_queue_next (future_queue<any> $queue_id, $timeout ::: float = -1.0) ::: future<^1[*]> | false;

The storage for waiting queues is WaitQueueContext. That class is responsible for queues managing. Class wait_queue_t contains two queues: one for forks, second for awaiters.

Details

astrophysik avatar Aug 09 '24 13:08 astrophysik