pause — Pause execution until keypress or specified duration elapses with MATLAB-compatible timing semantics.
pause suspends execution until user interaction or for a requested duration, supporting MATLAB-compatible pause, pause(n), and pause-state control forms.
Syntax
out = pause()
out = pause(duration)
state = pause(command)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
duration | Any | Yes | 0 | Duration scalar or command-like scalar value accepted by pause. |
command | StringScalar | Yes | — | One of 'on', 'off', or 'query'. |
Returns
| Name | Type | Description |
|---|---|---|
out | NumericArray | Empty array when pausing or changing state. |
state | StringScalar | Previous pause state ('on' or 'off'). |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:pause:InvalidInputArgument | Input argument is malformed, unsupported, non-scalar where scalar is required, or a negative/non-finite duration. | pause: invalid input argument |
RunMat:pause:TooManyInputs | More than one input argument is supplied. | pause: too many input arguments |
RunMat:pause:StateLockFailed | Internal pause-state lock cannot be acquired. | pause: failed to acquire pause state |
RunMat:pause:GpuGatherFailed | Gathering a GPU argument to host fails during argument classification. | pause: failed to gather gpu input |
Does RunMat run pause on the GPU?
pause never runs on the GPU. When you pass GPU-resident values (for example, pause(gpuArray(0.5))), RunMat automatically gathers them to the host before evaluating the delay. No residency changes occur otherwise, and acceleration providers do not receive any callbacks.
GPU memory and residency
pause never runs on the GPU. When you pass GPU-resident values (for example, pause(gpuArray(0.5))), RunMat automatically gathers them to the host before evaluating the delay. No residency changes occur otherwise, and acceleration providers do not receive any callbacks.
Examples
Pausing for a fixed duration
tic;
pause(0.05); % wait 50 milliseconds
elapsed = tocWaiting for user input mid-script
disp("Press any key to continue the demo...");
pause; % waits until the user presses a key (while pause is 'on')Temporarily disabling pauses in automated runs
state = pause('off'); % returns previous state so it can be restored
cleanup = onCleanup(@() pause(state)); % ensure state is restored
pause(1.0); % returns immediately because pause is disabledQuerying the current pause mode
current = pause('query'); % returns 'on' or 'off'Using empty input to rely on the default behaviour
pause([]); % equivalent to calling pause with no argumentsUsing pause with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how pause changes the result.
Run a small pause example, explain the result, then change one input and compare the output.
FAQ
Does pause block forever when standard input is not interactive?⌄
No. When RunMat detects a non-interactive standard input (for example, during automated tests), pause completes immediately even in 'on' mode.
What happens if I call pause with a negative duration?⌄
RunMat raises RunMat:pause:InvalidInputArgument, matching MATLAB.
Does pause accept logical or integer values?⌄
Yes. Logical and integer inputs are converted to doubles before evaluating the delay.
Can I force pausing off globally?⌄
Use pause('off') to disable pauses. Record the return value so you can restore the prior state with pause(previousState).
Does pause('query') change the pause state?⌄
No. It simply reports the current mode ('on' or 'off').
Is pause affected by GPU fusion or auto-offload?⌄
No. The builtin runs on the host regardless of fusion plans or acceleration providers.
What is the default pause state?⌄
'on'. Every RunMat session starts with pausing enabled.
Can I pass a gpuArray as the duration?⌄
Yes. RunMat gathers the scalar duration to the host before evaluating the delay.
Related Timing functions
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how pause is executed, line by line, in Rust.
- View the source for pause in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.