% Generated by tinyroxygen: do not edit by hand
% Please edit documentation in later2.R
\name{run_now}
\alias{run_now}
\title{Execute scheduled operations}
\usage{
run_now(timeoutSecs = 0L, all = TRUE, loop = current_loop())
}

\arguments{
\item{timeoutSecs}{Wait (block) for up to this number of seconds waiting for
  an operation to be ready to run. If `0`, then return immediately if there
  are no operations that are ready to run. If `Inf` or negative, then wait as
  long as it takes (if none are scheduled, then this will block forever).}

\item{all}{If `FALSE`, `run_now()` will execute at most one scheduled
  operation (instead of all eligible operations). This can be useful in cases
  where you want to interleave scheduled operations with your own logic.}

\item{loop}{A handle to an event loop. Defaults to the currently-active loop.}
}

\value{
A logical indicating whether any callbacks were actually run.
}

\description{
Normally, operations scheduled with [later()] will not execute
unless/until no other R code is on the stack (i.e. at the top-level). If you
need to run blocking R code for a long time and want to allow scheduled
operations to run at well-defined points of your own operation, you can call
`run_now()` at those points and any operations that are due to run will do
so.

If one of the callbacks throws an error, the error will _not_ be caught, and
subsequent callbacks will not be executed (until `run_now()` is called again,
or control returns to the R prompt). You must use your own
[tryCatch][base::conditions] if you want to handle errors.
}

