table of contents
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 |