summaryrefslogtreecommitdiff
path: root/src/libunixonacid/kolbak_call.c
blob: b7b97c0c33eadb7d45cd3c0cfbb4a338390c653c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
/* ISC license. */

#include <errno.h>
#include <skalibs/unixmessage.h>
#include <skalibs/kolbak.h>

int kolbak_call (unixmessage_t const *m, kolbak_queue_t *q)
{
  if (q->head == q->tail) return (errno = EILSEQ, 0) ;
  if (!(*q->x[q->head].f)(m, q->x[q->head].data)) return 0 ;
  q->head = (q->head + 1) % q->n ;
  return 1 ;
}