1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

Remove fat mutex abandoned mutex error

* libguile/threads.c (fat_mutex_lock): Remove abandoned mutex error, as
  SRFI-18 is responsible for this.
* test-suite/tests/threads.test: Update test.
This commit is contained in:
Andy Wingo 2016-11-05 00:26:29 +01:00
parent a3d0a7da4d
commit f1b7eaaa1a
2 changed files with 4 additions and 20 deletions

View file

@ -1131,8 +1131,6 @@ SCM_DEFINE (scm_make_recursive_mutex, "make-recursive-mutex", 0, 0, 0,
}
#undef FUNC_NAME
SCM_SYMBOL (scm_abandoned_mutex_error_key, "abandoned-mutex-error");
static SCM
fat_mutex_lock (SCM mutex, scm_t_timespec *timeout, int *ret)
{
@ -1154,15 +1152,6 @@ fat_mutex_lock (SCM mutex, scm_t_timespec *timeout, int *ret)
*ret = 1;
break;
}
else if (SCM_I_IS_THREAD (m->owner) && scm_c_thread_exited_p (m->owner))
{
m->owner = new_owner;
err = scm_cons (scm_abandoned_mutex_error_key,
scm_from_locale_string ("lock obtained on abandoned "
"mutex"));
*ret = 1;
break;
}
else if (scm_is_eq (m->owner, new_owner))
{
if (m->recursive)

View file

@ -436,15 +436,10 @@
(lock-mutex m)
(lock-mutex m)))
(pass-if "locking abandoned mutex throws exception"
(let* ((m (make-mutex))
(t (begin-thread (lock-mutex m)))
(success #f))
(join-thread t)
(catch 'abandoned-mutex-error
(lambda () (lock-mutex m))
(lambda key (set! success #t)))
success)))))
(pass-if "abandoned mutexes are dead"
(let* ((m (make-mutex)))
(join-thread (begin-thread (lock-mutex m)))
(not (lock-mutex m (+ (current-time) 0.1))))))))
;;