VOTEQ...SPATCH(3)
β¨ NAME β¨
votequorum_dispatch β ok so this one dispatches callbacks from the votequorum service π that's literally the whole job bestie
π SYNOPSIS π
#include <corosync/votequorum.h>
int votequorum_dispatch(votequorum_handle_t handle, cs_dispatch_flags_t
*dispatch_types);
no cap, that's the whole signature π
π¦ DESCRIPTION π¦
So votequorum_dispatch is the function you call when you want to dispatch configuration changes. That's it, that's the vibe. β¨
Real talk tho: every application can have several connections to the votequorum API, and the handle argument is how you tell them apart β it uniquely identifies which connection you're talking about. One handle per connection, no mixing them up, periodt. π
Then there's dispatch_types, which tells the function what kind of dispatch you want. The possible types are defined by this structure, and I need you to copy it exactly:
typedef enum {
CS_DISPATCH_ONE = 1,
CS_DISPATCH_ALL = 2,
CS_DISPATCH_BLOCKING = 3,
CS_DISPATCH_ONE_NONBLOCKING = 4
} cs_dispatch_flags_t;
And now the meanings, bestie, because these matter:
CS_DISPATCH_ONEβ dispatches at least one callback, and it blocks until that callback actually gets dispatched. it's giving patient. π§CS_DISPATCH_ALLβ dispatches all the waiting callbacks, and does not block waiting for any callbacks. no waiting around, we're busy π¨CS_DISPATCH_BLOCKINGβ dispatches all callbacks, blocking indefinitely. The manpage is very specific about this one: it's used in a threaded program where a thread is created, and thenquorum_dispatch()is called immediately from the created thread to execute callbacks. π§΅CS_DISPATCH_ONE_NONBLOCKINGβ dispatches at most one callback. And if there's no pending callback? You getCS_ERR_TRY_AGAINback. surprise! π
πΈ RETURN VALUE πΈ
If everything goes good, this call returns the CS_OK value. Otherwise? An error comes back instead. that's the deal π«Ά
π ERRORS π
ok so here's the whole error roster, don't skip any of these:
CS_ERR_TRY_AGAINβ Resource temporarily unavailableCS_ERR_INVALID_PARAMβ Invalid argumentCS_ERR_ACCESSβ Permission deniedCS_ERR_LIBRARYβ The connection failedCS_ERR_INTERRUPTβ System call interrupted by a signalCS_ERR_NOT_SUPPORTEDβ The requested protocol/functionality not supportedCS_ERR_MESSAGE_ERRORβ Incorrect auth message receivedCS_ERR_NO_MEMORYβ Not enough memory to complete the requested task
π SEE ALSO π
go read these next, bestie, they're all part of the same friend group:
votequorum_overview(3)votequorum_initialize(3)votequorum_finalize(3)votequorum_getinfo(3)votequorum_trackstart(3)votequorum_trackstop(3)votequorum_fd_get(3)votequorum_context_set(3)votequorum_context_get(3)votequorum_setexpected(3)votequorum_setvotes(3)
and that's the whole page, mwah π This little masterpiece lives in the corosync Man Page, dated 2026-09-04 β shoutout to the corosync girlies for keeping the cluster quorum lore alive, we are obsessed ππβ¨
π¦ where this page comes from
- fedora 43: corosynclib-devel 3.1.10-3.fc43 Β· BSD-3-Clause
- fedora 43: corosynclib-devel 3.1.10-3.fc43 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-6.fc44 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-6.fc44 Β· BSD-3-Clause
- Copyright (c) 2009,2012 Red Hat, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms