static int _drop_queue(struct message_queue *q) { // todo: send message back to message source struct skynet_message msg; int s = 0; while(!skynet_mq_pop(q, &msg)) { ++s; free(msg.data); } _release(q); return s; }
static int _drop_queue(struct message_queue *q) { // todo: send message back to message source struct skynet_message msg; int s = 0; while(!skynet_mq_pop(q, &msg)) { ++s; int type = msg.sz >> HANDLE_REMOTE_SHIFT; if (type == PTYPE_MULTICAST) { assert((msg.sz & HANDLE_MASK) == 0); skynet_multicast_dispatch((struct skynet_multicast_message *)msg.data, NULL, NULL); } else { free(msg.data); } } _release(q); return s; }