]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap_r/rq.c
Add valx arg to config_parse_add - indicate which value in the current
[openldap] / libraries / libldap_r / rq.c
index adfaea5641813044aee94feccbef6055e174a885..e692c628ed1f2e52cd04b120f0dc556157a831c6 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2003-2005 The OpenLDAP Foundation.
+ * Copyright 2003-2006 The OpenLDAP Foundation.
  * Portions Copyright 2003 IBM Corporation.
  * All rights reserved.
  *
@@ -38,7 +38,9 @@ ldap_pvt_runqueue_insert(
        struct runqueue_s* rq,
        time_t interval,
        ldap_pvt_thread_start_t *routine,
-       void *arg
+       void *arg,
+       char *tname,
+       char *tspec
 )
 {
        struct re_s* entry;
@@ -51,7 +53,9 @@ ldap_pvt_runqueue_insert(
                entry->next_sched.tv_usec = 0;
                entry->routine = routine;
                entry->arg = arg;
-               LDAP_STAILQ_INSERT_TAIL( &rq->task_list, entry, tnext );
+               entry->tname = tname;
+               entry->tspec = tspec;
+               LDAP_STAILQ_INSERT_HEAD( &rq->task_list, entry, tnext );
        }
        return entry;
 }
@@ -95,20 +99,16 @@ ldap_pvt_runqueue_remove(
 struct re_s*
 ldap_pvt_runqueue_next_sched(
        struct runqueue_s* rq,
-       struct timeval** next_run
+       struct timeval* next_run
 )
 {
        struct re_s* entry;
 
        entry = LDAP_STAILQ_FIRST( &rq->task_list );
-       if ( entry == NULL ) {
-               *next_run = NULL;
-               return NULL;
-       } else if ( entry->next_sched.tv_sec == 0 ) {
-               *next_run = NULL;
+       if ( entry == NULL || entry->next_sched.tv_sec == 0 ) {
                return NULL;
        } else {
-               *next_run = &entry->next_sched;
+               *next_run = entry->next_sched;
                return entry;
        }
 }