]> git.sur5r.net Git - openldap/blob - libraries/libldap_r/thr_stub.c
debe7c61d738b7a03319b98cfb1b6d610d2d07b0
[openldap] / libraries / libldap_r / thr_stub.c
1 /* thr_stub.c - stubs for the threads */
2 /* $OpenLDAP$ */
3 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4  *
5  * Copyright 1998-2004 The OpenLDAP Foundation.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted only as authorized by the OpenLDAP
10  * Public License.
11  *
12  * A copy of this license is available in file LICENSE in the
13  * top-level directory of the distribution or, alternatively, at
14  * <http://www.OpenLDAP.org/license.html>.
15  */
16
17 #include "portable.h"
18
19 #if defined( NO_THREADS )
20
21 #include "ldap_pvt_thread.h"
22
23 /***********************************************************************
24  *                                                                     *
25  * no threads package defined for this system - fake ok returns from   *
26  * all threads routines (making it single-threaded).                   *
27  *                                                                     *
28  ***********************************************************************/
29
30 int
31 ldap_int_thread_initialize( void )
32 {
33         return 0;
34 }
35
36 int
37 ldap_int_thread_destroy( void )
38 {
39         return 0;
40 }
41
42 static void* ldap_int_status = NULL;
43
44 int 
45 ldap_pvt_thread_create( ldap_pvt_thread_t * thread, 
46         int detach,
47         void *(*start_routine)(void *),
48         void *arg)
49 {
50         if( ! detach ) ldap_int_status = NULL;
51         start_routine( arg );
52         return 0;
53 }
54
55 void 
56 ldap_pvt_thread_exit( void *retval )
57 {
58         if( retval != NULL ) {
59                 ldap_int_status = retval;
60         }
61         return;
62 }
63
64 int 
65 ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **status )
66 {
67         if(status != NULL) *status = ldap_int_status;
68         return 0;
69 }
70
71 int 
72 ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo )
73 {
74         return 0;
75 }
76
77 int 
78 ldap_pvt_thread_yield( void )
79 {
80         return 0;
81 }
82
83 int 
84 ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond )
85 {
86         return 0;
87 }
88
89 int 
90 ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond )
91 {
92         return 0;
93 }
94
95 int 
96 ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond )
97 {
98         return 0;
99 }
100
101 int 
102 ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond )
103 {
104         return 0;
105 }
106
107 int 
108 ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond,
109                           ldap_pvt_thread_mutex_t *mutex )
110 {
111         return 0;
112 }
113
114 int 
115 ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex )
116 {
117         return 0;
118 }
119
120 int 
121 ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex )
122 {
123         return 0;
124 }
125
126 int 
127 ldap_pvt_thread_mutex_lock( ldap_pvt_thread_mutex_t *mutex )
128 {
129         return 0;
130 }
131
132 int 
133 ldap_pvt_thread_mutex_trylock( ldap_pvt_thread_mutex_t *mutex )
134 {
135         return 0;
136 }
137
138 int 
139 ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex )
140 {
141         return 0;
142 }
143
144 /*
145  * NO_THREADS requires a separate tpool implementation since
146  * generic ldap_pvt_thread_pool_wrapper loops forever.
147  */
148 int
149 ldap_pvt_thread_pool_init (
150         ldap_pvt_thread_pool_t *pool_out,
151         int max_concurrency, int max_pending )
152 {
153         *pool_out = (ldap_pvt_thread_pool_t) 0;
154         return(0);
155 }
156
157 int
158 ldap_pvt_thread_pool_submit (
159         ldap_pvt_thread_pool_t *pool,
160         ldap_pvt_thread_start_t *start_routine, void *arg )
161 {
162         (start_routine)(NULL, arg);
163         return(0);
164 }
165
166 int
167 ldap_pvt_thread_pool_maxthreads ( ldap_pvt_thread_pool_t *tpool, int max_threads )
168 {
169         return(0);
170 }
171
172 int
173 ldap_pvt_thread_pool_backload (
174         ldap_pvt_thread_pool_t *pool )
175 {
176         return(0);
177 }
178
179 int
180 ldap_pvt_thread_pool_destroy (
181         ldap_pvt_thread_pool_t *pool, int run_pending )
182 {
183         return(0);
184 }
185
186 int ldap_pvt_thread_pool_getkey (
187         void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree )
188 {
189         return(0);
190 }
191
192 int ldap_pvt_thread_pool_setkey (
193         void *ctx, void *key, void *data, ldap_pvt_thread_pool_keyfree_t *kfree )
194 {
195         return(0);
196 }
197
198 void *ldap_pvt_thread_pool_context( )
199 {
200         return(NULL);
201 }
202
203 ldap_pvt_thread_t
204 ldap_pvt_thread_self( void )
205 {
206         return(0);
207 }
208
209 #endif /* NO_THREADS */