Cleaned up demo

This commit is contained in:
Justin Ethier 2016-01-14 23:34:19 -05:00
parent 04d1655a6a
commit d0bce4a15e

View file

@ -1,27 +1,17 @@
;; Simple example demonstrating many threads concurrently writing data to stdout
(import (import
(scheme base) (scheme base)
(scheme read) (scheme read)
(scheme write) (scheme write)
(srfi 18)) (srfi 18))
;; should not be necessary, just testing
;; TODO: noticed gc_move error with mutex... may be a GC issue
;(define m (make-mutex))
(define (write-forever val) (define (write-forever val)
; (mutex-lock! m)
(write val) (write val)
; (list 1)
; (mutex-unlock! m)
(write-forever val)) (write-forever val))
(define (make-writer val) (define (make-writer val)
(lambda () (write-forever val))) (lambda () (write-forever val)))
;; Try moving closures to heap prior to using threads
;; TODO: needed?
(Cyc-minor-gc)
(thread-start! (thread-start!
(make-thread (make-thread
(make-writer "thread 1"))) (make-writer "thread 1")))
@ -31,6 +21,5 @@
(thread-start! (thread-start!
(make-thread (make-thread
(make-writer 'thread-3))) (make-writer 'thread-3)))
;; TODO: when main runs the process crashes, but otherwise it seems stable. WTF?
((make-writer 'main)) ((make-writer 'main))
(read) ;(read)