ps_wait: Wait for one or more processes to terminate, with a timeout

View source: R/low-level.R

ps_waitR Documentation

Wait for one or more processes to terminate, with a timeout

Description

This function supports interruption with SIGINT on Unix, or CTRL+C or CTRL+BREAK on Windows.

Usage

ps_wait(p, timeout = -1)

Arguments

p

A process handle, or a list of process handles. The process(es) to wait for.

timeout

Timeout in milliseconds. If -1, ps_wait() will wait indefinitely (or until it is interrupted). If 0, then it checks which processes have already terminated, and returns immediately.

Value

Logical vector, with one value of each process in p. For processes that terminated it contains a TRUE value. For processes that are still running it contains a FALSE value.

Examples


# this example calls `sleep`, so it only works on Unix
p1 <- processx::process$new("sleep", "100")
p2 <- processx::process$new("sleep", "100")

# returns c(FALSE, FALSE) immediately if p1 and p2 are running
ps_wait(list(p1$as_ps_handle(), p2$as_ps_handle()), 0)

# timeouts at one second
ps_wait(list(p1$as_ps_handle(), p2$as_ps_handle()), 1000)

p1$kill()
p2$kill()
# returns c(TRUE, TRUE) immediately
ps_wait(list(p1$as_ps_handle(), p2$as_ps_handle()), 1000)


ps documentation built on Oct. 29, 2024, 1:08 a.m.