mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 08:17:35 +02:00
Use *parameter-id* in make-parameter
This commit is contained in:
parent
69468b1480
commit
0c4be522e5
1 changed files with 8 additions and 2 deletions
|
@ -948,12 +948,18 @@
|
||||||
()
|
()
|
||||||
((param value) ...)
|
((param value) ...)
|
||||||
body))))
|
body))))
|
||||||
|
(define *parameter-id* 0)
|
||||||
(define (make-parameter init . o)
|
(define (make-parameter init . o)
|
||||||
;; TODO: need to store/set value in the thread data parameter (param_objs), to make it thread-specific
|
;; TODO: need to store/set value in the thread data parameter (param_objs), to make it thread-specific
|
||||||
;; TODO: what will the key be? how do we look up the thread's value for this parameter object????
|
|
||||||
(let* ((converter
|
(let* ((converter
|
||||||
(if (pair? o) (car o) (lambda (x) x)))
|
(if (pair? o) (car o) (lambda (x) x)))
|
||||||
(value (converter init)))
|
(value (converter init))
|
||||||
|
(key #f))
|
||||||
|
;; TODO: this is not thread safe!
|
||||||
|
(set! key *parameter-id*)
|
||||||
|
(set! *parameter-id* (+ *parameter-id* 1))
|
||||||
|
;;
|
||||||
|
|
||||||
(lambda args
|
(lambda args
|
||||||
(cond
|
(cond
|
||||||
((null? args)
|
((null? args)
|
||||||
|
|
Loading…
Add table
Reference in a new issue