Просмотр исходного кода

qdevice timer-list: Add reschedule operation

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Jan Friesse 10 лет назад
Родитель
Сommit
4894ee5a9d
2 измененных файлов с 14 добавлено и 0 удалено
  1. 11 0
      qdevices/timer-list.c
  2. 3 0
      qdevices/timer-list.h

+ 11 - 0
qdevices/timer-list.c

@@ -148,6 +148,17 @@ timer_list_add(struct timer_list *tlist, PRUint32 interval, timer_list_cb_fn fun
 	return (new_entry);
 }
 
+void
+timer_list_reschedule(struct timer_list *tlist, struct timer_list_entry *entry)
+{
+
+	if (entry->is_active) {
+		entry->epoch = PR_IntervalNow();
+		TAILQ_REMOVE(&tlist->list, entry, entries);
+		timer_list_insert_into_list(tlist, entry);
+	}
+}
+
 void
 timer_list_expire(struct timer_list *tlist)
 {

+ 3 - 0
qdevices/timer-list.h

@@ -75,6 +75,9 @@ extern void				 timer_list_init(struct timer_list *tlist);
 extern struct timer_list_entry		*timer_list_add(struct timer_list *tlist,
     PRUint32 interval, timer_list_cb_fn func, void *data1, void *data2);
 
+extern void				 timer_list_reschedule(struct timer_list *tlist,
+    struct timer_list_entry *entry);
+
 extern void				 timer_list_delete(struct timer_list *tlist,
     struct timer_list_entry *entry);