[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile/guile-core/ice-9 threads.scm
From: |
Thien-Thi Nguyen |
Subject: |
guile/guile-core/ice-9 threads.scm |
Date: |
Fri, 06 Apr 2001 02:51:25 -0700 |
CVSROOT: /cvs
Module name: guile
Changes by: Thien-Thi Nguyen <address@hidden> 01/04/06 02:51:25
Modified files:
guile-core/ice-9: threads.scm
Log message:
Update copyright.
Use `export' and `export-syntax' instead of
`define-public' and `defmacro-public'.
(make-thread): Rename first arg to `proc'; nfc.
(begin-thread, monitor): Rename second arg to `rest'; nfc.
(with-mutex): Rename second arg to `body'; nfc.
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/ice-9/threads.scm.diff?r1=1.5&r2=1.6
Patches:
Index: guile/guile-core/ice-9/threads.scm
diff -u guile/guile-core/ice-9/threads.scm:1.5
guile/guile-core/ice-9/threads.scm:1.6
--- guile/guile-core/ice-9/threads.scm:1.5 Mon Oct 19 14:23:31 1998
+++ guile/guile-core/ice-9/threads.scm Fri Apr 6 02:51:25 2001
@@ -1,15 +1,15 @@
-;;;; Copyright (C) 1996, 1998 Free Software Foundation, Inc.
-;;;;
+;;;; Copyright (C) 1996, 1998, 2001 Free Software Foundation, Inc.
+;;;;
;;;; This program is free software; you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by
;;;; the Free Software Foundation; either version 2, or (at your option)
;;;; any later version.
-;;;;
+;;;;
;;;; This program is distributed in the hope that it will be useful,
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;;; GNU General Public License for more details.
-;;;;
+;;;;
;;;; You should have received a copy of the GNU General Public License
;;;; along with this software; see the file COPYING. If not, write to
;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
@@ -19,6 +19,7 @@
;;;; threads.scm -- User-level interface to Guile's thread system
;;;; 4 March 1996, Anthony Green <address@hidden>
;;;; Modified 5 October 1996, MDJ <address@hidden>
+;;;; Modified 6 April 2001, ttn
;;;; ----------------------------------------------------------------
;;;;
@@ -27,51 +28,62 @@
-; --- MACROS -------------------------------------------------------
-
-(define-public (%thread-handler tag . args)
+(define (%thread-handler tag . args)
(fluid-set! the-last-stack #f)
(unmask-signals)
(let ((n (length args))
(p (current-error-port)))
- (display "In thread:" p)
- (newline p)
- (if (>= n 3)
- (display-error #f
- p
- (car args)
- (cadr args)
- (caddr args)
- (if (= n 4)
- (cadddr args)
- '()))
- (begin
- (display "uncaught throw to " p)
- (display tag p)
- (display ": " p)
- (display args p)
- (newline p)))))
+ (display "In thread:" p)
+ (newline p)
+ (if (>= n 3)
+ (display-error #f
+ p
+ (car args)
+ (cadr args)
+ (caddr args)
+ (if (= n 4)
+ (cadddr args)
+ '()))
+ (begin
+ (display "uncaught throw to " p)
+ (display tag p)
+ (display ": " p)
+ (display args p)
+ (newline p)))))
-(defmacro-public make-thread (fn . args)
+; --- MACROS -------------------------------------------------------
+
+(defmacro make-thread (proc . args)
`(call-with-new-thread
(lambda ()
- (,fn ,@args))
+ (,proc ,@args))
%thread-handler))
-(defmacro-public begin-thread (first . thunk)
+(defmacro begin-thread (first . rest)
`(call-with-new-thread
(lambda ()
(begin
- ,first ,@thunk))
+ ,first ,@rest))
%thread-handler))
-(defmacro-public with-mutex (m . thunk)
+(defmacro with-mutex (m . body)
`(dynamic-wind
- (lambda () (lock-mutex ,m))
- (lambda () (begin ,@thunk))
- (lambda () (unlock-mutex ,m))))
+ (lambda () (lock-mutex ,m))
+ (lambda () (begin ,@body))
+ (lambda () (unlock-mutex ,m))))
-(defmacro-public monitor (first . thunk)
+(defmacro monitor (first . rest)
`(with-mutex ,(make-mutex)
- (begin
- ,first ,@thunk)))
+ (begin
+ ,first ,@rest)))
+
+;; export
+
+(export %thread-handler)
+
+(export-syntax make-thread
+ begin-thread
+ with-mutex
+ monitor)
+
+;;; threads.scm ends here
- guile/guile-core/ice-9 threads.scm,
Thien-Thi Nguyen <=