Skip to content

Commit 5d98d22

Browse files
author
Paul Thompson
committed
Remove windup behavior from break_dispatch
1 parent eaf6f81 commit 5d98d22

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

events/equeue/equeue.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ int equeue_create_inplace(equeue_t *q, size_t size, void *buffer) {
7373
q->queue = 0;
7474
q->tick = equeue_tick();
7575
q->generation = 0;
76-
q->breaks = 0;
76+
q->break_requested = false;
7777

7878
q->background.active = false;
7979
q->background.update = 0;
@@ -366,7 +366,7 @@ void equeue_cancel(equeue_t *q, int id) {
366366

367367
void equeue_break(equeue_t *q) {
368368
equeue_mutex_lock(&q->queuelock);
369-
q->breaks++;
369+
q->break_requested = true;
370370
equeue_mutex_unlock(&q->queuelock);
371371
equeue_sema_signal(&q->eventsema);
372372
}
@@ -436,10 +436,10 @@ void equeue_dispatch(equeue_t *q, int ms) {
436436
equeue_sema_wait(&q->eventsema, deadline);
437437

438438
// check if we were notified to break out of dispatch
439-
if (q->breaks) {
439+
if (q->break_requested) {
440440
equeue_mutex_lock(&q->queuelock);
441-
if (q->breaks > 0) {
442-
q->breaks--;
441+
if (q->break_requested) {
442+
q->break_requested = false;
443443
equeue_mutex_unlock(&q->queuelock);
444444
return;
445445
}
@@ -469,7 +469,7 @@ void equeue_event_dtor(void *p, void (*dtor)(void *)) {
469469
}
470470

471471

472-
// simple callbacks
472+
// simple callbacks
473473
struct ecallback {
474474
void (*cb)(void*);
475475
void *data;

events/equeue/equeue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ struct equeue_event {
5858
typedef struct equeue {
5959
struct equeue_event *queue;
6060
unsigned tick;
61-
unsigned breaks;
61+
bool break_requested;
6262
uint8_t generation;
6363

6464
unsigned char *buffer;

0 commit comments

Comments
 (0)