What does the pause function do in MATLAB / RunMat?
pause suspends execution and mirrors MATLAB's timing semantics:
pausewith no inputs waits for keyboard input (press any key) while pause mode ison.pause(t)delays execution fortseconds (non-negative numeric scalar).t = Infbehaves likepausewith no arguments.pause('on')andpause('off')enable or disable pausing globally, returning the previous state ('on'or'off').pause('query')reports the current state ('on'or'off').pause([])is treated aspausewith no arguments.- When pause mode is
off, delays and key waits complete immediately.
Invalid usages (negative times, non-scalar numeric inputs, or unknown strings) raise MATLAB:pause:InvalidInputArgument, matching MATLAB diagnostics.
GPU Execution 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 of using the pause function in MATLAB / RunMat
Pausing for a fixed duration
tic;
pause(0.05); % wait 50 milliseconds
elapsed = toc;
Waiting 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 disabled
Querying 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 arguments
FAQ
- Does
pauseblock forever when standard input is not interactive? No. When RunMat detects a non-interactive standard input (for example, during automated tests),pausecompletes immediately even in'on'mode. - What happens if I call
pausewith a negative duration? RunMat raisesMATLAB:pause:InvalidInputArgument, matching MATLAB. - Does
pauseaccept 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 withpause(previousState). - Does
pause('query')change the pause state? No. It simply reports the current mode ('on'or'off'). - Is
pauseaffected 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.
See Also
Source & Feedback
- Implementation:
crates/runmat-runtime/src/builtins/timing/pause.rs - Found a behavioural difference? Open an issue with a minimal repro.