diff options
| -rw-r--r-- | lib/ChangeLog | 6 | ||||
| -rw-r--r-- | lib/thread.c | 5 | ||||
| -rw-r--r-- | lib/thread.h | 2 | 
3 files changed, 11 insertions, 2 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index 5a0eff55..82ea6fd1 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2005-05-19 Paul Jakma <paul@dishone.st> + +	* thread.c: (thread_cancel_event) the number of pending events +	  cancelled is potentially useful information, dont throw it away, +	  pass it back to the caller. +  2005-05-15 Paul Jakma <paul@dishone.st>  	* getopt.h: It's not just __GNU_LIBRARY__ which defines diff --git a/lib/thread.c b/lib/thread.c index a18db25a..32fc15ef 100644 --- a/lib/thread.c +++ b/lib/thread.c @@ -663,9 +663,10 @@ thread_cancel (struct thread *thread)  }  /* Delete all events which has argument value arg. */ -void +unsigned int  thread_cancel_event (struct thread_master *m, void *arg)  { +  unsigned int ret = 0;    struct thread *thread;    thread = m->event.head; @@ -678,11 +679,13 @@ thread_cancel_event (struct thread_master *m, void *arg)        if (t->arg == arg)          { +          ret++;            thread_list_delete (&m->event, t);            t->type = THREAD_UNUSED;            thread_add_unuse (m, t);          }      } +  return ret;  }  static struct timeval * diff --git a/lib/thread.h b/lib/thread.h index 4a3bbbe5..f693ff5a 100644 --- a/lib/thread.h +++ b/lib/thread.h @@ -185,7 +185,7 @@ extern struct thread *funcname_thread_execute (struct thread_master *,                                                 int (*)(struct thread *),                                                 void *, int, const char *);  extern void thread_cancel (struct thread *); -extern void thread_cancel_event (struct thread_master *, void *); +extern unsigned int thread_cancel_event (struct thread_master *, void *);  extern struct thread *thread_fetch (struct thread_master *, struct thread *);  extern void thread_call (struct thread *);  extern unsigned long thread_timer_remain_second (struct thread *);  | 
