---
name: "Catmandu::Fix::Bind::timeout"
section: "3pm"
platform: "linux"
package: "libcatmandu-perl"
version: "1.2024-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catmandu::Fix::Bind::timeout"
---

# Catmandu::Fix::Bind::timeout(3pm)

run fixes that should run within a time limit

## NAME

Catmandu::Fix::Bind::timeout - run fixes that should run within a time limit

## SYNOPSIS

```
    # The following bind will run fix1(), fix2(), ... fixN() only if the
    # action can be done in 5 seconds
    do timeout(time:5, units:seconds)
       fix1()
       fix2()
       fix3()
       .
       .
       .
       fixN()
    end
    next_fix()
```

## DESCRIPTION

The timeout binder will run the supplied block only when all the fixes can be run within a time limit. All fixes (except side-effects) are ignored when the block can't be executed within the time limit.

## CONFIGURATION

### timeout(time =\> VALUE , units =\> MICROSECOND\|MILLISECONDS\|SECONDS\|MINUTES\|HOURS)

Set a timeout to VALUE. This timeout doesn't prevent a fix script to run longer than the specified value, but it does prevent fixes to have any effect when the timeout has been reached.

```
    # This script will run 10 seconds
    do timeout(time:5, units:seconds)
       add_field(foo,ok) # This will be ignored
       sleep(10,seconds)
       set_field(foo,error) # This will be ignored
    end
```

At timeout a log message of level WARN will be generated.

## SEE ALSO

Catmandu::Fix::Bind
