---
name: "quorum_dispatch"
section: "3"
platform: "linux"
package: "libquorum-dev"
version: "3.1.9-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/quorum_dispatch"
---

# quorum\_dispatch(3)

Dispatches callbacks from the quorum service

## NAME

quorum\_dispatch - Dispatches callbacks from the quorum service

## SYNOPSIS

**#include \<corosync/quorum.h\>**

**int quorum\_dispatch(quorum\_handle\_t** *handle***, cs\_dispatch\_flags\_t \****dispatch\_types***);**

## DESCRIPTION

The **quorum\_dispatch** function is used to dispatch configuration changes.

Each application may have several connections to the quorum API.  Each application uses the *handle* argument to uniquely identify the connection.

The *dispatch\_types* argument is used to identify the type of dispatch to execute.  The possible types are defined by the structure:

```
typedef enum {
        CS_DISPATCH_ONE = 1,
        CS_DISPATCH_ALL = 2,
        CS_DISPATCH_BLOCKING = 3,
        CS_DISPATCH_ONE_NONBLOCKING = 4
} cs_dispatch_flags_t;
```

The dispatch values have the following meanings:

- **CS\_DISPATCH\_ONE**

  Dispatch at least one callback, blocking until the callback is dispatched.

- **CS\_DISPATCH\_ALL**

  Dispatch all waiting callbacks without blocking to wait for any callbacks.

- **CS\_DISPATCH\_BLOCKING**

  Dispatch all callbacks blocking indefinitely.  This is used in a threaded program where a thread is created, and then quorum\_dispatch() is called immediately from the created thread to execute callbacks.

- **CS\_DISPATCH\_ONE\_NONBLOCKING**

  Dispatch at most one callback. If there is no pending callback, CS\_ERR\_TRY\_AGAIN is returned.

## RETURN VALUE

This call returns the CS\_OK value if successful, otherwise an error is returned.

## ERRORS

**CS\_ERR\_TRY\_AGAIN** Resource temporarily unavailable

**CS\_ERR\_INVALID\_PARAM** Invalid argument

**CS\_ERR\_ACCESS** Permission denied

**CS\_ERR\_LIBRARY** The connection failed

**CS\_ERR\_INTERRUPT** System call interrupted by a signal

**CS\_ERR\_NOT\_SUPPORTED** The requested protocol/functionality not supported

**CS\_ERR\_MESSAGE\_ERROR** Incorrect auth message received

**CS\_ERR\_NO\_MEMORY** Not enough memory to complete the requested task

## SEE ALSO

[**quorum\_overview**(3)](/quorum_overview/3.md), [**quorum\_initialize**(3)](/quorum_initialize/3.md), [**quorum\_model\_initialize**(3)](/quorum_model_initialize/3.md), [**quorum\_finalize**(3)](/quorum_finalize/3.md), [**quorum\_getquorate**(3)](/quorum_getquorate/3.md), [**quorum\_trackstart**(3)](/quorum_trackstart/3.md), [**quorum\_trackstop**(3)](/quorum_trackstop/3.md), [**quorum\_fd\_get**(3)](/quorum_fd_get/3.md), [**quorum\_context\_set**(3)](/quorum_context_set/3.md), [**quorum\_context\_get**(3)](/quorum_context_get/3.md)
