Example #1
0
int 
skynet_mq_release(struct message_queue *q) {
	int ret = 0;
	LOCK(q)
	
	if (q->release) {
		UNLOCK(q)
		ret = _drop_queue(q);
	} else {
		skynet_mq_force_push(q);
		UNLOCK(q)
	}
	
	return ret;
}
int 
skynet_mq_release(struct message_queue *q) {
	int ret = 0;
	LOCK(q)
	
	if (q->release) {	// 有释放标记,则删除消息队列q
		UNLOCK(q)
		ret = _drop_queue(q);
	} else {			// 没有,则重新压入全局队列
		skynet_mq_force_push(q);
		UNLOCK(q)
	}
	
	return ret;
}