+/* Should find a place to cache these */
+static mutexint *get_mutexint()
+{
+ mutexint *mi = ch_malloc( sizeof( mutexint ));
+ ldap_pvt_thread_mutex_init( &mi->mi_mutex );
+ mi->mi_int = 1;
+ return mi;
+}
+
+static void inc_mutexint( mutexint *mi )
+{
+ ldap_pvt_thread_mutex_lock( &mi->mi_mutex );
+ mi->mi_int++;
+ ldap_pvt_thread_mutex_unlock( &mi->mi_mutex );
+}
+
+/* return resulting counter */
+static int dec_mutexint( mutexint *mi )
+{
+ int i;
+ ldap_pvt_thread_mutex_lock( &mi->mi_mutex );
+ i = --mi->mi_int;
+ ldap_pvt_thread_mutex_unlock( &mi->mi_mutex );
+ if ( !i ) {
+ ldap_pvt_thread_mutex_destroy( &mi->mi_mutex );
+ ch_free( mi );
+ }
+ return i;
+}
+