return SLAP_CB_CONTINUE;
}
-static slap_callback *rwm_cb;
+static slap_callback rwm_cb;
static void
rwm_keyfree(
{
void *data = NULL;
- if ( op->o_threadctx ) {
- ldap_pvt_thread_pool_getkey( op->o_threadctx,
- rwm_keyfree, &data, NULL );
- } else {
- data = rwm_cb;
+ if ( op->o_threadctx == NULL ) {
+ return &rwm_cb;
}
+ ldap_pvt_thread_pool_getkey( op->o_threadctx,
+ rwm_keyfree, &data, NULL );
if ( data == NULL ) {
- data = ber_memalloc( sizeof( slap_callback ) );
- if ( op->o_threadctx ) {
- ldap_pvt_thread_pool_setkey( op->o_threadctx,
- rwm_keyfree, data, rwm_keyfree );
-
- } else {
- rwm_cb = (slap_callback *)data;
- }
+ data = ch_calloc( sizeof( slap_callback ), 1 );
+ ldap_pvt_thread_pool_setkey( op->o_threadctx,
+ rwm_keyfree, data, rwm_keyfree );
}
return (slap_callback *)data;