mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-16 14:21:48 -08:00
mp_get_lock_wait() checks the type of the lock before dereferencing a field.
This commit is contained in:
parent
e278e1d5a7
commit
667362a485
1 changed files with 5 additions and 2 deletions
|
|
@ -156,8 +156,11 @@ mp_get_lock_nowait(cl_object lock)
|
|||
cl_object
|
||||
mp_get_lock_wait(cl_object lock)
|
||||
{
|
||||
if (lock->lock.queue_list != Cnil ||
|
||||
mp_get_lock_nowait(lock) == Cnil) {
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
unlikely_if (type_of(lock) != t_lock) {
|
||||
FEerror_not_a_lock(lock);
|
||||
}
|
||||
if (lock->lock.queue_list != Cnil || get_lock_inner(env, lock) == Cnil) {
|
||||
ecl_wait_on(get_lock_inner, lock);
|
||||
}
|
||||
@(return Ct)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue