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

# votequorum\_dispatch(3)

Dispatches callbacks from the votequorum service

## NAME

votequorum\_dispatch - Dispatches callbacks from the votequorum service

## SYNOPSIS

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

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

## DESCRIPTION

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

Each application may have several connections to the votequorum 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

[**votequorum\_overview**(3)](/votequorum_overview/3.md), [**votequorum\_initialize**(3)](/votequorum_initialize/3.md), [**votequorum\_finalize**(3)](/votequorum_finalize/3.md), [**votequorum\_getinfo**(3)](/votequorum_getinfo/3.md), [**votequorum\_trackstart**(3)](/votequorum_trackstart/3.md), [**votequorum\_trackstop**(3)](/votequorum_trackstop/3.md), [**votequorum\_fd\_get**(3)](/votequorum_fd_get/3.md), [**votequorum\_context\_set**(3)](/votequorum_context_set/3.md), [**votequorum\_context\_get**(3)](/votequorum_context_get/3.md), [**votequorum\_setexpected**(3)](/votequorum_setexpected/3.md), [**votequorum\_setvotes**(3)](/votequorum_setvotes/3.md)
