static void shutdown(void) { /* stop the flow, disconnect ports and close children nodes */ sol_flow_node_del(flow); /* delete types */ sol_flow_node_type_del(isoddtype); sol_flow_node_type_del(mytype); sol_flow_node_type_del(flow_node_type); /* delete the builder */ sol_flow_builder_del(builder); }
static void flow_node_close(struct sol_flow_node *node, void *data) { struct flow_static_type *type = (struct flow_static_type *)node->type; struct flow_static_data *fsd = data; int i; if (fsd->delay_send) sol_timeout_del(fsd->delay_send); while (!sol_list_is_empty(&fsd->delayed_packets)) { struct delayed_packet *dp; struct sol_list *itr = fsd->delayed_packets.next; dp = SOL_LIST_GET_CONTAINER(itr, struct delayed_packet, list); sol_list_remove(itr); sol_flow_packet_del(dp->packet); free(dp); } teardown_connections(type, fsd); for (i = type->node_count - 1; i >= 0; i--) sol_flow_node_fini(fsd->nodes[i]); free(fsd->node_storage); free(fsd->nodes); if (type->owned_by_node) sol_flow_node_type_del(&type->base.base); }
static void shutdown(void) { /* stop the flow, disconnect ports and close children nodes */ sol_flow_node_del(flow); /* delete the node type we've created with builder */ sol_flow_node_type_del(flow_node_type); }