| Motr
    M0
    | 
#include "lib/thread.h"#include "lib/errno.h"#include "lib/chan.h"#include "lib/assert.h"#include "addb2/addb2.h"#include "addb2/counter.h"#include "motr/magic.h"#include "lib/arith.h"
Go to the source code of this file.
| Functions | |
| M0_TL_DESCR_DEFINE (clink, "chan clinks", static, struct m0_clink, cl_linkage, cl_magic, M0_LIB_CHAN_MAGIC, M0_LIB_CHAN_HEAD_MAGIC) | |
| M0_TL_DEFINE (clink, static, struct m0_clink) | |
| static bool | clink_is_head (const struct m0_clink *clink) | 
| M0_INTERNAL void | m0_chan_lock (struct m0_chan *ch) | 
| M0_INTERNAL void | m0_chan_unlock (struct m0_chan *ch) | 
| M0_INTERNAL bool | m0_chan_is_locked (const struct m0_chan *ch) | 
| static bool | m0_chan_invariant (struct m0_chan *chan) | 
| M0_INTERNAL void | m0_chan_init (struct m0_chan *chan, struct m0_mutex *ch_guard) | 
| M0_INTERNAL void | m0_chan_fini (struct m0_chan *chan) | 
| M0_INTERNAL void | m0_chan_fini_lock (struct m0_chan *chan) | 
| static void | clink_signal (struct m0_clink *clink) | 
| static void | chan_signal_nr (struct m0_chan *chan, uint32_t nr) | 
| M0_INTERNAL void | m0_chan_signal (struct m0_chan *chan) | 
| M0_INTERNAL void | m0_chan_signal_lock (struct m0_chan *chan) | 
| M0_INTERNAL void | m0_chan_broadcast (struct m0_chan *chan) | 
| M0_INTERNAL void | m0_chan_broadcast_lock (struct m0_chan *chan) | 
| M0_INTERNAL bool | m0_chan_has_waiters (struct m0_chan *chan) | 
| static void | clink_init (struct m0_clink *link, struct m0_clink *group, m0_chan_cb_t cb) | 
| M0_INTERNAL void | m0_clink_init (struct m0_clink *link, m0_chan_cb_t cb) | 
| M0_INTERNAL void | m0_clink_fini (struct m0_clink *link) | 
| M0_INTERNAL void | m0_clink_attach (struct m0_clink *link, struct m0_clink *group, m0_chan_cb_t cb) | 
| M0_INTERNAL void | m0_clink_add (struct m0_chan *chan, struct m0_clink *link) | 
| void | m0_clink_add_lock (struct m0_chan *chan, struct m0_clink *link) | 
| M0_INTERNAL void | m0_clink_del (struct m0_clink *link) | 
| M0_INTERNAL void | m0_clink_del_lock (struct m0_clink *link) | 
| M0_INTERNAL bool | m0_clink_is_armed (const struct m0_clink *link) | 
| M0_INTERNAL void | m0_clink_cleanup (struct m0_clink *link) | 
| M0_INTERNAL void | m0_clink_cleanup_locked (struct m0_clink *link) | 
| M0_INTERNAL void | m0_clink_signal (struct m0_clink *clink) | 
| M0_INTERNAL bool | m0_chan_trywait (struct m0_clink *link) | 
| M0_INTERNAL void | m0_chan_wait (struct m0_clink *link) | 
| M0_INTERNAL bool | m0_chan_timedwait (struct m0_clink *link, const m0_time_t abs_timeout) |