---
name: "xpaoom"
section: "7"
platform: "linux"
package: "libxpa-dev"
version: "2.1.20-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xpaoom"
---

# xpaoom(7)

What happens when XPA runs out of memory?

## NAME

**Xpaoom - What happens when XPA runs out of memory?**

## SYNOPSIS

When XPA can't allocate memory, it exits. You can arrange to have it call *longjmp()* instead.

## DESCRIPTION

When an XPA server or client cannot allocate memory, it will attempt to output an error message and then exit. If this is not satisfactory (e.g., perhaps your program is interactive and can recover from OOM errors), you can tell XPA to call *longjmp()* to go to a recovery branch. To pass the  requisite jmp\_buf variable to XPA, make the following call:

```
  XPASaveJmp(void *env);
```

The value of env is the address of a jmp\_buf variable that was previously  passed to *setjmp()*. For example:

```
  jmp_buf env;
  ...
  if( setjmp(jmp_buf) != 0 ){
    /* out of memory -- take corrective action, if possible */
  } else {
    /* save env for XPA */
    XPASaveJmp((void *)&jmp_buf);
  }
  // enter main loop ...
```

## SEE ALSO

See xpa(n) for a list of XPA help pages
