Explorar el Código

faux.eloop: Functions to del sched events

Serj Kalichev hace 3 años
padre
commit
6f2aba70a8
Se han modificado 2 ficheros con 17 adiciones y 5 borrados
  1. 5 1
      faux/eloop.h
  2. 12 4
      faux/eloop/eloop.c

+ 5 - 1
faux/eloop.h

@@ -41,12 +41,15 @@ C_DECL_BEGIN
 faux_eloop_t *faux_eloop_new(faux_eloop_cb_f default_event_cb);
 void faux_eloop_free(faux_eloop_t *eloop);
 bool_t faux_eloop_loop(faux_eloop_t *eloop);
+
 bool_t faux_eloop_add_fd(faux_eloop_t *eloop, int fd, short events,
 	faux_eloop_cb_f event_cb, void *user_data);
 bool_t faux_eloop_del_fd(faux_eloop_t *eloop, int fd);
+
 bool_t faux_eloop_add_signal(faux_eloop_t *eloop, int signo,
 	faux_eloop_cb_f event_cb, void *user_data);
 bool_t faux_eloop_del_signal(faux_eloop_t *eloop, int signo);
+
 faux_ev_t *faux_eloop_add_sched_once(faux_eloop_t *eloop, const struct timespec *time,
 	int ev_id, faux_eloop_cb_f event_cb, void *data);
 faux_ev_t *faux_eloop_add_sched_once_delayed(faux_eloop_t *eloop, const struct timespec *interval,
@@ -57,7 +60,8 @@ faux_ev_t *faux_eloop_add_sched_periodic(faux_eloop_t *eloop, const struct times
 faux_ev_t *faux_eloop_add_sched_periodic_delayed(faux_eloop_t *eloop,
 	int ev_id, faux_eloop_cb_f event_cb, void *data,
 	const struct timespec *period, unsigned int cycle_num);
-bool_t faux_eloop_del_sched(faux_eloop_t *eloop, int id);
+ssize_t faux_eloop_del_sched(faux_eloop_t *eloop, faux_ev_t *ev);
+ssize_t faux_eloop_del_sched_by_id(faux_eloop_t *eloop, int ev_id);
 
 C_DECL_END
 

+ 12 - 4
faux/eloop/eloop.c

@@ -618,13 +618,21 @@ faux_ev_t *faux_eloop_add_sched_periodic_delayed(faux_eloop_t *eloop,
 }
 
 
-bool_t faux_eloop_del_sched(faux_eloop_t *eloop, int id)
+ssize_t faux_eloop_del_sched(faux_eloop_t *eloop, faux_ev_t *ev)
 {
 	assert(eloop);
 	if (!eloop)
-		return BOOL_FALSE;
+		return -1;
+
+	return faux_sched_del(eloop->sched, ev);
+}
 
-	faux_sched_del_by_id(eloop->sched, id);
 
-	return BOOL_TRUE;
+ssize_t faux_eloop_del_sched_by_id(faux_eloop_t *eloop, int ev_id)
+{
+	assert(eloop);
+	if (!eloop)
+		return -1;
+
+	return faux_sched_del_by_id(eloop->sched, ev_id);
 }