---
name: "Munin::Common::Timeout"
section: "3pm"
platform: "linux"
package: "munin-node"
version: "2.0.76-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Munin::Common::Timeout"
---

# Munin::Common::Timeout(3pm)

Run code with a timeout. May nest.

## NAME

Munin::Common::Timeout - Run code with a timeout. May nest.

## SYNOPSIS

```
 use Munin::Common::Timeout;
 do_with_timeout(50, sub {
     # ...
        do_with_timeout(5, sub {
                # ...
                # ...
        });
     # ...
 });
```

## DESCRIPTION

See also Time::Out, Sys::AlarmCall

## SUBROUTINES

- **do\_with\_timeout**

  ```
   my $finished_with_no_timeout = do_with_timeout($seconds, $code_ref)
       or die "Timed out!";
  ```

  Executes `$block` with a timeout of `$seconds`.  Returns the return value of the `$block`  if it completed within the timeout.  If the timeout is reached and the code is still running, it halts it and returns undef.

  NB: every `$code_ref` should return something defined, otherwise the caller doesn't know if a timeout occurred.

  Calls to **do\_with\_timeout()** can be nested.  Any exceptions raised  by `$block` are propagated.
