diff options
author | Andy Wingo <wingo@pobox.com> | 2016-11-05 00:26:29 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-11-05 10:30:49 +0100 |
commit | f1b7eaaa1a78f2a0b1be1f35ec583349322db02e (patch) | |
tree | c7ce5e0973324f8fa5c58a2f7e3757f519739ebf | |
parent | a3d0a7da4d2a78a7bddbac7a93648835d8419e8f (diff) | |
download | guile-f1b7eaaa1a78f2a0b1be1f35ec583349322db02e.tar.gz |
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.
-rw-r--r-- | libguile/threads.c | 11 | ||||
-rw-r--r-- | test-suite/tests/threads.test | 13 |
2 files changed, 4 insertions, 20 deletions
diff --git a/libguile/threads.c b/libguile/threads.c index d15c4e76e..6263519a0 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -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) diff --git a/test-suite/tests/threads.test b/test-suite/tests/threads.test index ee6a505f9..2156f61fc 100644 --- a/test-suite/tests/threads.test +++ b/test-suite/tests/threads.test @@ -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)))))))) ;; |