sorted_queue.c: set notify correctly

pull/37/merge
YuQing 2021-09-20 10:40:17 +08:00
parent 8491c5d155
commit 1b35cbc094
2 changed files with 3 additions and 2 deletions

View File

@ -1,6 +1,5 @@
%define LibFastcommonDevel libfastcommon-devel %define LibFastcommonDevel libfastcommon-devel
%define LibFastcommonDebuginfo libfastcommon-debuginfo
%define CommitVersion %(echo $COMMIT_VERSION) %define CommitVersion %(echo $COMMIT_VERSION)
Name: libfastcommon Name: libfastcommon

View File

@ -45,9 +45,11 @@ void sorted_queue_push_ex(struct sorted_queue *sq, void *data, bool *notify)
FC_QUEUE_NEXT_PTR(&sq->queue, data) = NULL; FC_QUEUE_NEXT_PTR(&sq->queue, data) = NULL;
FC_QUEUE_NEXT_PTR(&sq->queue, sq->queue.tail) = data; FC_QUEUE_NEXT_PTR(&sq->queue, sq->queue.tail) = data;
sq->queue.tail = data; sq->queue.tail = data;
*notify = false;
} else if (sq->compare_func(data, sq->queue.head) < 0) { } else if (sq->compare_func(data, sq->queue.head) < 0) {
FC_QUEUE_NEXT_PTR(&sq->queue, data) = sq->queue.head; FC_QUEUE_NEXT_PTR(&sq->queue, data) = sq->queue.head;
sq->queue.head = data; sq->queue.head = data;
*notify = true;
} else { } else {
previous = sq->queue.head; previous = sq->queue.head;
current = FC_QUEUE_NEXT_PTR(&sq->queue, previous); current = FC_QUEUE_NEXT_PTR(&sq->queue, previous);
@ -59,8 +61,8 @@ void sorted_queue_push_ex(struct sorted_queue *sq, void *data, bool *notify)
FC_QUEUE_NEXT_PTR(&sq->queue, data) = FC_QUEUE_NEXT_PTR( FC_QUEUE_NEXT_PTR(&sq->queue, data) = FC_QUEUE_NEXT_PTR(
&sq->queue, previous); &sq->queue, previous);
FC_QUEUE_NEXT_PTR(&sq->queue, previous) = data; FC_QUEUE_NEXT_PTR(&sq->queue, previous) = data;
*notify = false;
} }
*notify = false;
} }
PTHREAD_MUTEX_UNLOCK(&sq->queue.lc_pair.lock); PTHREAD_MUTEX_UNLOCK(&sq->queue.lc_pair.lock);