168 |
|
|
169 |
#if (SCM_ENABLE_DEPRECATED == 1) |
#if (SCM_ENABLE_DEPRECATED == 1) |
170 |
|
|
171 |
SCM_API int |
int |
172 |
scm_mutex_init (scm_t_mutex *m) |
scm_mutex_init (scm_t_mutex *m) |
173 |
{ |
{ |
174 |
scm_gc_protect_object (m->m = scm_make_mutex ()); |
scm_gc_protect_object (m->m = scm_make_mutex ()); |
175 |
return 0; |
return 0; |
176 |
} |
} |
177 |
|
|
178 |
SCM_API int |
int |
179 |
scm_mutex_lock (scm_t_mutex *m) |
scm_mutex_lock (scm_t_mutex *m) |
180 |
{ |
{ |
181 |
scm_lock_mutex (m->m); |
scm_lock_mutex (m->m); |
182 |
return 0; |
return 0; |
183 |
} |
} |
184 |
|
|
185 |
SCM_API int |
int |
186 |
scm_mutex_trylock (scm_t_mutex *m) |
scm_mutex_trylock (scm_t_mutex *m) |
187 |
{ |
{ |
188 |
return SCM_FALSEP (scm_try_mutex (m->m))? EBUSY : 0; |
return SCM_FALSEP (scm_try_mutex (m->m))? EBUSY : 0; |
189 |
} |
} |
190 |
|
|
191 |
SCM_API int |
int |
192 |
scm_mutex_unlock (scm_t_mutex *m) |
scm_mutex_unlock (scm_t_mutex *m) |
193 |
{ |
{ |
194 |
scm_unlock_mutex (m->m); |
scm_unlock_mutex (m->m); |
195 |
return 0; |
return 0; |
196 |
} |
} |
197 |
|
|
198 |
SCM_API int |
int |
199 |
scm_mutex_destroy (scm_t_mutex *m) |
scm_mutex_destroy (scm_t_mutex *m) |
200 |
{ |
{ |
201 |
scm_gc_unprotect_object (m->m); |
scm_gc_unprotect_object (m->m); |
209 |
return 0; |
return 0; |
210 |
} |
} |
211 |
|
|
212 |
SCM_API int |
int |
213 |
scm_cond_wait (scm_t_cond *c, scm_t_mutex *m) |
scm_cond_wait (scm_t_cond *c, scm_t_mutex *m) |
214 |
{ |
{ |
215 |
scm_wait_condition_variable (c->c, m->m); |
scm_wait_condition_variable (c->c, m->m); |
216 |
return 0; |
return 0; |
217 |
} |
} |
218 |
|
|
219 |
SCM_API int |
int |
220 |
scm_cond_timedwait (scm_t_cond *c, scm_t_mutex *m, |
scm_cond_timedwait (scm_t_cond *c, scm_t_mutex *m, |
221 |
const struct timespec *t) |
const struct timespec *t) |
222 |
{ |
{ |
225 |
scm_long2num (t->tv_nsec/1000)))); |
scm_long2num (t->tv_nsec/1000)))); |
226 |
} |
} |
227 |
|
|
228 |
SCM_API int |
int |
229 |
scm_cond_signal (scm_t_cond *c) |
scm_cond_signal (scm_t_cond *c) |
230 |
{ |
{ |
231 |
scm_signal_condition_variable (c->c); |
scm_signal_condition_variable (c->c); |
232 |
return 0; |
return 0; |
233 |
} |
} |
234 |
|
|
235 |
SCM_API int |
int |
236 |
scm_cond_broadcast (scm_t_cond *c) |
scm_cond_broadcast (scm_t_cond *c) |
237 |
{ |
{ |
238 |
scm_broadcast_condition_variable (c->c); |
scm_broadcast_condition_variable (c->c); |
239 |
return 0; |
return 0; |
240 |
} |
} |
241 |
|
|
242 |
SCM_API int |
int |
243 |
scm_cond_destroy (scm_t_cond *c) |
scm_cond_destroy (scm_t_cond *c) |
244 |
{ |
{ |
245 |
scm_gc_unprotect_object (c->c); |
scm_gc_unprotect_object (c->c); |