Scroll to navigation

Q_SEARCH(3) Librecast Programmer's Manual Q_SEARCH(3)

NAME

q_search - search for an entry in a smolq queue

LIBRARY

Librecast library (liblibrecast, -llibrecast)

SYNOPSIS

#include <librecast/q.h>
int  q_search(q_t *q, void *(*f)(void *), void *restrict arg);

Compile and link with -llibrecast.

DESCRIPTION

q_search() searches the queue q to find an entry that matches both f and arg.

No locks, so readers may read while we're searching, and writers may write. If something is read while we search, we will still return a positive match for that item, even though it is no longer in the queue. If a writer writes we will not notice that write. If this is a problem, for a particular use-case, an external lock will be required.

RETURN VALUE

The q_push() function returns 1 if found, zero if not found. On error, -1 is returned and errno is set to indicate the error.

ERRORS

The function can fail with any of the errors for sem_getvalue(3).

SEE ALSO

q_job_seek(3), q_pool_create(3), q_pool_destroy(3), q_init(3), q_free(3), q_push(3), q_wait(3), sem_getvalue(3).

2023-07-27 LIBRECAST