diff options
author | Vincent Sanders <vince@kyllikki.org> | 2019-06-08 13:33:16 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2019-06-08 13:33:16 +0100 |
commit | dddc5eac944746b766ac1009d2b7063cabab0d3d (patch) | |
tree | aedfa599bc4377fd23ae43aa7dede2b0187f45d9 /frontends/monkey | |
parent | c74c8332acc3e323565281f3f2774bf088a6a882 (diff) | |
download | netsurf-dddc5eac944746b766ac1009d2b7063cabab0d3d.tar.gz netsurf-dddc5eac944746b766ac1009d2b7063cabab0d3d.tar.bz2 |
Update schedulers return codes
The GTK and monkey frontends schedulers now return NSERROR_NOT_FOUND
when a caller is using a negative schedule time to remove a callback.
Diffstat (limited to 'frontends/monkey')
-rw-r--r-- | frontends/monkey/schedule.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/frontends/monkey/schedule.c b/frontends/monkey/schedule.c index 3d76997f4..9d3ab7af8 100644 --- a/frontends/monkey/schedule.c +++ b/frontends/monkey/schedule.c @@ -43,6 +43,7 @@ struct nscallback * * \param callback callback function * \param p user parameter, passed to callback function + * \return NSERROR_OK if callback found and removed else NSERROR_NOT_FOUND * * All scheduled callbacks matching both callback and p are removed. */ @@ -51,10 +52,11 @@ static nserror schedule_remove(void (*callback)(void *p), void *p) struct nscallback *cur_nscb; struct nscallback *prev_nscb; struct nscallback *unlnk_nscb; + bool removed = false; /* check there is something on the list to remove */ if (schedule_list == NULL) { - return NSERROR_OK; + return NSERROR_NOT_FOUND; } NSLOG(schedule, DEBUG, "removing %p, %p", callback, p); @@ -80,6 +82,7 @@ static nserror schedule_remove(void (*callback)(void *p), void *p) prev_nscb->next = cur_nscb; } free (unlnk_nscb); + removed = true; } else { /* move to next element */ prev_nscb = cur_nscb; @@ -87,6 +90,9 @@ static nserror schedule_remove(void (*callback)(void *p), void *p) } } + if (removed == false) { + return NSERROR_NOT_FOUND; + } return NSERROR_OK; } @@ -99,7 +105,7 @@ nserror monkey_schedule(int tival, void (*callback)(void *p), void *p) /* ensure uniqueness of the callback and context */ ret = schedule_remove(callback, p); - if ((tival < 0) || (ret != NSERROR_OK)) { + if (tival < 0) { return ret; } |