static void fill(pcu_order o, pcu_aa_tree t) { if (pcu_aa_empty(t)) return; fill(o, t->left); o->array[o->at++] = (struct message*) t; fill(o, t->right); }
static bool done_sending_peers(pcu_aa_tree t) { if (pcu_aa_empty(t)) return true; pcu_msg_peer* peer; peer = (pcu_msg_peer*)t; return pcu_mpi_done(&(peer->message)) && done_sending_peers(t->left) && done_sending_peers(t->right); }
static void send_peers(pcu_aa_tree t) { if (pcu_aa_empty(t)) return; pcu_msg_peer* peer; peer = (pcu_msg_peer*)t; pcu_mpi_send(&(peer->message),pcu_user_comm); send_peers(t->left); send_peers(t->right); }
static void free_messages(pcu_aa_tree* t) { if (pcu_aa_empty(*t)) return; free_messages(&((*t)->left)); free_messages(&((*t)->right)); struct message* m; m = (struct message*) *t; free_message(m); pcu_make_aa(t); }
static void free_peers(pcu_aa_tree* t) { if (pcu_aa_empty(*t)) return; free_peers(&((*t)->left)); free_peers(&((*t)->right)); pcu_msg_peer* peer; peer = (pcu_msg_peer*) *t; pcu_free_message(&(peer->message)); noto_free(peer); pcu_make_aa(t); }