[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 04/17: srfi-18: Use `match' in thread-start!.
From: |
Andy Wingo |
Subject: |
[Guile-commits] 04/17: srfi-18: Use `match' in thread-start!. |
Date: |
Mon, 31 Oct 2016 21:39:37 +0000 (UTC) |
wingo pushed a commit to branch master
in repository guile.
commit 4d23c835c4373355e9d6ccd80cc8fe431f4551b9
Author: Andy Wingo <address@hidden>
Date: Sun Oct 30 21:43:08 2016 +0100
srfi-18: Use `match' in thread-start!.
* module/srfi/srfi-18.scm (thread-start!): Use `match'.
---
module/srfi/srfi-18.scm | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/module/srfi/srfi-18.scm b/module/srfi/srfi-18.scm
index 756508c..adad0d9 100644
--- a/module/srfi/srfi-18.scm
+++ b/module/srfi/srfi-18.scm
@@ -32,6 +32,7 @@
(define-module (srfi srfi-18)
#:use-module ((ice-9 threads) #:prefix threads:)
+ #:use-module (ice-9 match)
#:use-module (srfi srfi-34)
#:export (;; Threads
make-thread
@@ -210,15 +211,15 @@
*unspecified*)
(define (thread-start! thread)
- (let ((x (hashq-ref thread-start-conds
- (check-arg-type threads:thread? thread "thread-start!"))))
- (and x (let ((smutex (car x))
- (scond (cdr x)))
- (hashq-remove! thread-start-conds thread)
- (threads:lock-mutex smutex)
- (threads:signal-condition-variable scond)
- (threads:unlock-mutex smutex)))
- thread))
+ (match (hashq-ref thread-start-conds
+ (check-arg-type threads:thread? thread "thread-start!"))
+ ((smutex . scond)
+ (hashq-remove! thread-start-conds thread)
+ (threads:lock-mutex smutex)
+ (threads:signal-condition-variable scond)
+ (threads:unlock-mutex smutex))
+ (#f #f))
+ thread)
(define (thread-yield!) (threads:yield) *unspecified*)
- [Guile-commits] branch master updated (c957ec7 -> eeeee32), Andy Wingo, 2016/10/31
- [Guile-commits] 05/17: srfi-18: Simplify thread-sleep!, thread-terminate!., Andy Wingo, 2016/10/31
- [Guile-commits] 04/17: srfi-18: Use `match' in thread-start!.,
Andy Wingo <=
- [Guile-commits] 06/17: srfi-18: Use lambda* optional arguments., Andy Wingo, 2016/10/31
- [Guile-commits] 07/17: srfi-18: Use parameters., Andy Wingo, 2016/10/31
- [Guile-commits] 10/17: srfi-18: Avoid call/cc., Andy Wingo, 2016/10/31
- [Guile-commits] 11/17: Rationalize exception handling in srfi-18, Andy Wingo, 2016/10/31
- [Guile-commits] 17/17: Remove thread cleanup facility, Andy Wingo, 2016/10/31
- [Guile-commits] 02/17: Fix srfi-34 indentation, Andy Wingo, 2016/10/31
- [Guile-commits] 12/17: Refactor thread-join! to use optional args., Andy Wingo, 2016/10/31
- [Guile-commits] 13/17: Trim srfi-18 thread startup machinery, Andy Wingo, 2016/10/31
- [Guile-commits] 14/17: cancel-thread can take arguments, Andy Wingo, 2016/10/31
- [Guile-commits] 03/17: srfi-18: Improve style., Andy Wingo, 2016/10/31