X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap_r%2Fthr_stub.c;h=eacdd5ea442beba0bf65827efec7ad79d2db708d;hb=319440033f01e6939de0ec70689cd9325d7bcdee;hp=2c801814e4fe8963aaab49c5be6ea8584565a04b;hpb=c149f48e5cd7cfaa37872fd273e1d8706999b1f0;p=openldap diff --git a/libraries/libldap_r/thr_stub.c b/libraries/libldap_r/thr_stub.c index 2c801814e4..eacdd5ea44 100644 --- a/libraries/libldap_r/thr_stub.c +++ b/libraries/libldap_r/thr_stub.c @@ -1,5 +1,6 @@ +/* $OpenLDAP$ */ /* - * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA + * Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA * All rights reserved. * * Redistribution and use in source and binary forms are permitted only @@ -11,10 +12,11 @@ /* thr_stub.c - stubs for the threads */ #include "portable.h" -#include "ldap_pvt_thread.h" #if defined( NO_THREADS ) +#include "ldap_pvt_thread.h" + /*********************************************************************** * * * no threads package defined for this system - fake ok returns from * @@ -22,100 +24,160 @@ * * ***********************************************************************/ +int +ldap_int_thread_initialize( void ) +{ + return 0; +} + +int +ldap_int_thread_destroy( void ) +{ + return 0; +} + +static void* ldap_int_status = NULL; + int -openldap_thread_create( openldap_thread_t * thread, - openldap_thread_attr_t *attr, - void *(*start_routine)( void *), void *arg) +ldap_pvt_thread_create( ldap_pvt_thread_t * thread, + int detach, + void *(*start_routine)(void *), + void *arg) { + if( ! detach ) ldap_int_status = NULL; start_routine( arg ); return 0; } void -openldap_thread_exit( void *retval ) +ldap_pvt_thread_exit( void *retval ) { + if( retval != NULL ) { + ldap_int_status = retval; + } return; } int -openldap_thread_join( openldap_thread_t thread, void **thread_return ) +ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **status ) { + if(status != NULL) *status = ldap_int_status; return 0; } int -openldap_thread_kill( openldap_thread_t thread, int signo ) +ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo ) { return 0; } int -openldap_thread_yield( void ) +ldap_pvt_thread_yield( void ) { return 0; } int -openldap_thread_attr_init( openldap_thread_attr_t *attr ) +ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond ) { return 0; } int -openldap_thread_attr_destroy( openldap_thread_attr_t *attr ) +ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond ) { return 0; } int -openldap_thread_attr_setdetachstate( openldap_thread_attr_t *attr, int dstate ) +ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond ) { return 0; } int -openldap_thread_cond_init( openldap_thread_cond_t *cond, - openldap_thread_condattr_t *attr ) +ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond ) { return 0; } int -openldap_thread_cond_signal( openldap_thread_cond_t *cond ) +ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond, + ldap_pvt_thread_mutex_t *mutex ) { return 0; } int -openldap_thread_cond_wait( openldap_thread_cond_t *cond, - openldap_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex ) { return 0; } int -openldap_thread_mutex_init( openldap_thread_mutex_t *mutex, - openldap_thread_mutexattr_t *attr ) +ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex ) { return 0; } int -openldap_thread_mutex_destroy( openldap_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_lock( ldap_pvt_thread_mutex_t *mutex ) { return 0; } int -openldap_thread_mutex_lock( openldap_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_trylock( ldap_pvt_thread_mutex_t *mutex ) { return 0; } int -openldap_thread_mutex_unlock( openldap_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex ) { return 0; } +/* + * NO_THREADS requires a separate tpool implementation since + * generic ldap_pvt_thread_pool_wrapper loops forever. + */ +int +ldap_pvt_thread_pool_init ( + ldap_pvt_thread_pool_t *pool_out, + int max_concurrency, int max_pending ) +{ + *pool_out = (ldap_pvt_thread_pool_t) 0; + return(0); +} + +int +ldap_pvt_thread_pool_submit ( + ldap_pvt_thread_pool_t *pool, + void *(*start_routine)( void * ), void *arg ) +{ + (start_routine)(arg); + return(0); +} + +int +ldap_pvt_thread_pool_maxthreads ( ldap_pvt_thread_pool_t *tpool, int max_threads ) +{ + return(0); +} + +int +ldap_pvt_thread_pool_backload ( + ldap_pvt_thread_pool_t *pool ) +{ + return(0); +} + +int +ldap_pvt_thread_pool_destroy ( + ldap_pvt_thread_pool_t *pool, int run_pending ) +{ + return(0); +} + #endif /* NO_THREADS */