X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap_r%2Fthr_cthreads.c;h=a79bd32bc7e0dd6e16942c631056d33fd26309a2;hb=8452b4ccde09a41c7e21cff66ec4f566b1a34e28;hp=807ecde35e27b8625947a20a7ee6897622003a37;hpb=72bf2552ebbcc15db956d0407d00c4a8ad863abb;p=openldap diff --git a/libraries/libldap_r/thr_cthreads.c b/libraries/libldap_r/thr_cthreads.c index 807ecde35e..a79bd32bc7 100644 --- a/libraries/libldap_r/thr_cthreads.c +++ b/libraries/libldap_r/thr_cthreads.c @@ -1,27 +1,28 @@ +/* thr_cthreads.c - wrapper for mach cthreads */ /* $OpenLDAP$ */ -/* - * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2012 The OpenLDAP Foundation. * All rights reserved. * - * Redistribution and use in source and binary forms are permitted only - * as authorized by the OpenLDAP Public License. A copy of this - * license is available at http://www.OpenLDAP.org/license.html or - * in file LICENSE in the top-level directory of the distribution. + * 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 + * . + */ +/* This work was initially developed by Luke Howard for inclusion + * in U-MICH LDAP 3.3. */ - -/* thr_cthreads.c - wrapper for mach cthreads */ #include "portable.h" #if defined( HAVE_MACH_CTHREADS ) -#include "ldap_int_thread.h" - -/*********************************************************************** - * * - * under NEXTSTEP or OPENSTEP use CThreads * - * lukeh@xedoc.com.au * - * * - ***********************************************************************/ +#include "ldap_pvt_thread.h" /* Get the thread interface */ +#define LDAP_THREAD_IMPLEMENTATION +#include "ldap_thr_debug.h" /* May rename the symbols defined below */ int ldap_int_thread_initialize( void ) @@ -36,7 +37,7 @@ ldap_int_thread_destroy( void ) } int -ldap_int_thread_create( ldap_int_thread_t * thread, +ldap_pvt_thread_create( ldap_pvt_thread_t * thread, int detach, void *(*start_routine)( void *), void *arg) { @@ -45,13 +46,13 @@ ldap_int_thread_create( ldap_int_thread_t * thread, } void -ldap_int_thread_exit( void *retval ) +ldap_pvt_thread_exit( void *retval ) { cthread_exit( (any_t) retval ); } int -ldap_int_thread_join( ldap_int_thread_t thread, void **thread_return ) +ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **thread_return ) { void *status; status = (void *) cthread_join ( thread ); @@ -63,56 +64,56 @@ ldap_int_thread_join( ldap_int_thread_t thread, void **thread_return ) } int -ldap_int_thread_kill( ldap_int_thread_t thread, int signo ) +ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo ) { return 0; } int -ldap_int_thread_yield( void ) +ldap_pvt_thread_yield( void ) { cthread_yield(); return 0; } int -ldap_int_thread_cond_init( ldap_int_thread_cond_t *cond ) +ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond ) { condition_init( cond ); return( 0 ); } int -ldap_int_thread_cond_destroy( ldap_int_thread_cond_t *cond ) +ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond ) { condition_clear( cond ); return( 0 ); } int -ldap_int_thread_cond_signal( ldap_int_thread_cond_t *cond ) +ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond ) { condition_signal( cond ); return( 0 ); } int -ldap_int_thread_cond_broadcast( ldap_int_thread_cond_t *cond ) +ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond ) { condition_broadcast( cond ); return( 0 ); } int -ldap_int_thread_cond_wait( ldap_int_thread_cond_t *cond, - ldap_int_thread_mutex_t *mutex ) +ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond, + ldap_pvt_thread_mutex_t *mutex ) { condition_wait( cond, mutex ); return( 0 ); } int -ldap_int_thread_mutex_init( ldap_int_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex ) { mutex_init( mutex ); mutex->name = NULL; @@ -120,30 +121,60 @@ ldap_int_thread_mutex_init( ldap_int_thread_mutex_t *mutex ) } int -ldap_int_thread_mutex_destroy( ldap_int_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex ) { mutex_clear( mutex ); return ( 0 ); } int -ldap_int_thread_mutex_lock( ldap_int_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_lock( ldap_pvt_thread_mutex_t *mutex ) { mutex_lock( mutex ); return ( 0 ); } int -ldap_int_thread_mutex_unlock( ldap_int_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex ) { mutex_unlock( mutex ); return ( 0 ); } int -ldap_int_thread_mutex_trylock( ldap_int_thread_mutex_t *mutex ) +ldap_pvt_thread_mutex_trylock( ldap_pvt_thread_mutex_t *mutex ) { return mutex_try_lock( mutex ); } +ldap_pvt_thread_t +ldap_pvt_thread_self( void ) +{ + return cthread_self(); +} + +int +ldap_pvt_thread_key_create( ldap_pvt_thread_key_t *key ) +{ + return cthread_keycreate( key ); +} + +int +ldap_pvt_thread_key_destroy( ldap_pvt_thread_key_t key ) +{ + return( 0 ); +} + +int +ldap_pvt_thread_key_setdata( ldap_pvt_thread_key_t key, void *data ) +{ + return cthread_setspecific( key, data ); +} + +int +ldap_pvt_thread_key_getdata( ldap_pvt_thread_key_t key, void **data ) +{ + return cthread_getspecific( key, data ); +} + #endif /* HAVE_MACH_CTHREADS */