remove assert in global mq

This commit is contained in:
云风
2012-10-30 16:53:06 +08:00
parent 40d2f89443
commit 3fe87f04c2

View File

@@ -37,14 +37,13 @@ static struct global_queue *Q = NULL;
#define LOCK(q) while (__sync_lock_test_and_set(&(q)->lock,1)) {}
#define UNLOCK(q) __sync_lock_release(&(q)->lock);
#define GP(p) ((p) % (MAX_GLOBAL_MQ-1))
#define GP(p) ((p) % MAX_GLOBAL_MQ)
static void
skynet_globalmq_push(struct message_queue * queue) {
struct global_queue *q= Q;
uint32_t tail = GP(__sync_fetch_and_add(&q->tail,1));
assert(!q->flag[tail]);
q->queue[tail] = queue;
__sync_synchronize();
q->flag[tail] = true;
@@ -69,6 +68,7 @@ skynet_globalmq_pop() {
return NULL;
}
q->flag[head_ptr] = false;
__sync_synchronize();
return mq;
}