summaryrefslogtreecommitdiff
path: root/src/common/events.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/events.c')
-rw-r--r--src/common/events.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/common/events.c b/src/common/events.c
index 9245050..b318d0c 100644
--- a/src/common/events.c
+++ b/src/common/events.c
@@ -60,11 +60,13 @@ void yasl_private_events_close(struct yasl_private_display *d)
free(state);
}
+/* Reports a lost event once, so one failed allocation does not fail every later dispatch. */
int yasl_private_events_error(struct yasl_private_display *d)
{
if (!d->events) return 0;
yasl_private_mutex_lock(&d->events->mutex);
int error = d->events->error;
+ d->events->error = 0;
yasl_private_mutex_unlock(&d->events->mutex);
return error;
}