static struct sync_flag foo_gone;
static void foo_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
static struct sync_flag foo_gone;
static void foo_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
static void bar_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
// Echo the data back.
if(len) {
static void bar_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
// Echo the data back.
if(len) {
- meshlink_channel_send(mesh, channel, data, len);
+ assert(meshlink_channel_send(mesh, channel, data, len) == (ssize_t)len);
meshlink_set_node_status_cb(mesh, bar_status_cb);
meshlink_set_channel_receive_cb(mesh, channel, bar_receive_cb);
meshlink_set_node_status_cb(mesh, bar_status_cb);
meshlink_set_channel_receive_cb(mesh, channel, bar_receive_cb);
if(data) {
bar_receive_cb(mesh, channel, data, len);
if(data) {
bar_receive_cb(mesh, channel, data, len);
meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb);
assert(meshlink_destroy("channels_fork_conf.1"));
meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb);
assert(meshlink_destroy("channels_fork_conf.1"));
- meshlink_handle_t *mesh = meshlink_open("channels_fork_conf.1", "foo", "channels", DEV_CLASS_BACKBONE);
+ meshlink_handle_t *mesh = meshlink_open("channels_fork_conf.1", "foo", "channels-fork", DEV_CLASS_BACKBONE);
meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb);
assert(meshlink_destroy("channels_fork_conf.2"));
meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb);
assert(meshlink_destroy("channels_fork_conf.2"));
- meshlink_handle_t *mesh = meshlink_open("channels_fork_conf.2", "bar", "channels", DEV_CLASS_BACKBONE);
+ meshlink_handle_t *mesh = meshlink_open("channels_fork_conf.2", "bar", "channels-fork", DEV_CLASS_BACKBONE);
- assert(pipe2(fda, 0) != -1);
- assert(pipe2(fdb, 0) != -1);
+ assert(pipe(fda) != -1);
+ assert(pipe(fdb) != -1);