summaryrefslogtreecommitdiff
path: root/frontends/monkey/schedule.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2019-06-08 13:33:16 +0100
committerVincent Sanders <vince@kyllikki.org>2019-06-08 13:33:16 +0100
commitdddc5eac944746b766ac1009d2b7063cabab0d3d (patch)
treeaedfa599bc4377fd23ae43aa7dede2b0187f45d9 /frontends/monkey/schedule.c
parentc74c8332acc3e323565281f3f2774bf088a6a882 (diff)
downloadnetsurf-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/schedule.c')
-rw-r--r--frontends/monkey/schedule.c10
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;
}