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

# xpapoll(3)

execute existing XPA requests

## NAME

**XPAPoll - execute existing XPA requests**

## SYNOPSIS

```
  #include <xpa.h>
  int XPAPoll(int msec, int maxreq);
```

## DESCRIPTION

It is sometimes desirable to implement a polling loop, i.e., where one checks for and processes XPA requests without blocking.  For this situation, use the *XPAPoll()* routine:

```
  XPAPoll(int msec, int maxreq);
```

The *XPAPoll()* routine will perform *XPAAddSelect()* and *select()*, but with a timeout specified in millisecs by the msec argument. If one or more XPA requests are made before the timeout expires, the *XPAProcessSelect()* routine is called to process those requests. The maxreq value determines how many requests will be processed: if maxreq \< 0, then no events are processed, but instead, the return value indicates the number of events that are pending.  If maxreq == 0, then all currently pending requests will be processed.  Otherwise, up to maxreq requests will be processed. (The most usual values for maxreq are 0 to process all requests and 1 to process one request).

## SEE ALSO

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