Update of /cvsroot/scsh/scsh-0.6/scheme
In directory usw-pr-cvs1:/tmp/cvs-serv5473/scheme
Modified Files:
interfaces.scm more-packages.scm packages.scm rts-packages.scm
Log Message:
Added thread-cells structure for thread-local cells.
These can be used (together with fluids) to implement something akin
to PLT's and Chez's parameters for holding thread-local state such as
CWD, syslog channel, etc.
Index: interfaces.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scheme/interfaces.scm,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** interfaces.scm 2001/03/23 10:59:07 1.12
--- interfaces.scm 2001/05/22 14:58:15 1.13
***************
*** 391,394 ****
--- 391,404 ----
string->integer))
+ (define-interface thread-cells-interface
+ (export make-thread-cell
+ thread-cell-ref
+ thread-cell-set!))
+
+ (define-interface thread-cells-internal-interface
+ (export get-cell-values
+ empty-cell-values ; env/command-level.scm
+ initialize-dynamic-state!))
+
(define-interface fluids-interface
(export make-fluid
***************
*** 399,409 ****
(define-interface fluids-internal-interface
! (export initialize-dynamic-state!
! current-thread
set-current-thread!
get-dynamic-env ; wind.scm, env/command-level.scm
set-dynamic-env! ; wind.scm
get-dynamic-point ; wind.scm
! set-dynamic-point!)) ; wind.scm
(define-interface enumerated-interface
--- 409,419 ----
(define-interface fluids-internal-interface
! (export current-thread
set-current-thread!
get-dynamic-env ; wind.scm, env/command-level.scm
set-dynamic-env! ; wind.scm
get-dynamic-point ; wind.scm
! set-dynamic-point! ; wind.scm
! empty-dynamic-env)) ; thread-cell.scm
(define-interface enumerated-interface
Index: more-packages.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scheme/more-packages.scm,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** more-packages.scm 1999/09/19 19:03:51 1.2
--- more-packages.scm 2001/05/22 14:58:15 1.3
***************
*** 73,76 ****
--- 73,77 ----
channel-i/o ; steal-channel-port
fluids-internal ; get-dynamic-env, set-dynamic-env!
+ thread-cells-internal ; empty-cell-values
root-scheduler ; call-when-deadlocked!
conditions) ; define-condition-type
Index: packages.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scheme/packages.scm,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** packages.scm 2001/03/23 10:59:07 1.3
--- packages.scm 2001/05/22 14:58:15 1.4
***************
*** 273,276 ****
--- 273,277 ----
scheme-level-2
templates
+ thread-cells
threads
threads-internal
***************
*** 302,305 ****
--- 303,307 ----
root-scheduler
session-data
+ thread-cells-internal
usual-resumer
;; silly
Index: rts-packages.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scheme/rts-packages.scm,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** rts-packages.scm 2001/03/23 10:59:07 1.4
--- rts-packages.scm 2001/05/22 14:58:15 1.5
***************
*** 54,57 ****
--- 54,63 ----
(optimize auto-integrate))
+ (define-structures ((thread-cells thread-cells-interface)
+ (thread-cells-internal thread-cells-internal-interface))
+ (open scheme-level-1 define-record-types primitives fluids-internal)
+ (files (rts thread-cell))
+ (optimize auto-integrate))
+
(define-structure wind wind-interface
(open scheme-level-1 signals define-record-types
***************
*** 239,242 ****
--- 245,249 ----
fluids
fluids-internal ;get-dynamic-env
+ thread-cells-internal ;get-cell-values
escapes ;primitive-cwcc
conditions ;error?
***************
*** 253,257 ****
(define-structure scheduler scheduler-interface
! (open scheme-level-1 threads threads-internal enumerated enum-case
debug-messages
signals) ;error
--- 260,265 ----
(define-structure scheduler scheduler-interface
! (open scheme-level-1 threads threads-internal thread-cells-internal
! enumerated enum-case
debug-messages
signals) ;error
***************
*** 271,274 ****
--- 279,283 ----
i/o-internal ;output-port-forcer, output-forcer-id
fluids-internal ;get-dynamic-env
+ thread-cells-internal ;get-cell-values
interrupts ;with-interrupts-inhibited
wind ;call-with-current-continuation
***************
*** 319,323 ****
channel-i/o ;{in,out}put-channel->port, initialize-channel-i/o
session-data ;initialize-session-data!
! fluids-internal ;initialize-dynamic-state!
exceptions ;initialize-exceptions!
interrupts ;initialize-interrupts!
--- 328,332 ----
channel-i/o ;{in,out}put-channel->port, initialize-channel-i/o
session-data ;initialize-session-data!
! thread-cells-internal ;initialize-dynamic-state!
exceptions ;initialize-exceptions!
interrupts ;initialize-interrupts!
|