/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2010 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
-#ifdef LDAP_SYNCREPL
+#ifndef LDAP_RQ_H
+#define LDAP_RQ_H 1
+
+#include <ldap_cdefs.h>
+
+LDAP_BEGIN_DECL
typedef struct re_s {
struct timeval next_sched;
LDAP_STAILQ_ENTRY(re_s) rnext;
ldap_pvt_thread_start_t *routine;
void *arg;
+ char *tname;
+ char *tspec;
} re_t;
typedef struct runqueue_s {
ldap_pvt_thread_mutex_t rq_mutex;
} runqueue_t;
-LDAP_F( void )
+LDAP_F( struct re_s* )
ldap_pvt_runqueue_insert(
struct runqueue_s* rq,
time_t interval,
ldap_pvt_thread_start_t* routine,
+ void *arg,
+ char *tname,
+ char *tspec
+);
+
+LDAP_F( struct re_s* )
+ldap_pvt_runqueue_find(
+ struct runqueue_s* rq,
+ ldap_pvt_thread_start_t* routine,
void *arg
);
LDAP_F( struct re_s* )
ldap_pvt_runqueue_next_sched(
struct runqueue_s* rq,
- struct timeval** next_run
+ struct timeval* next_run
);
LDAP_F( void )
LDAP_F( void )
ldap_pvt_runqueue_resched(
struct runqueue_s* rq,
- struct re_s* entry
+ struct re_s* entry,
+ int defer
);
+LDAP_F( int )
+ldap_pvt_runqueue_persistent_backload(
+ struct runqueue_s* rq
+);
+
+LDAP_END_DECL
+
#endif