1(include "#.scm") 2 3(define tg (make-thread-group)) 4 5(define t1 (make-thread (lambda () 111))) 6 7(define t2 (make-thread (lambda () 222) 8 't2)) 9 10(define t3 (make-thread (lambda () 333) 11 't3 12 tg)) 13 14(define t4 (make-root-thread (lambda () 444))) 15 16(define t5 (make-root-thread (lambda () 555) 17 't5)) 18 19(define t6 (make-root-thread (lambda () 666) 20 't6 21 tg)) 22 23(define t7 (make-root-thread (lambda () 777) 24 't7 25 tg 26 (current-input-port))) 27 28(define t8 (make-root-thread (lambda () 888) 29 't8 30 tg 31 (current-input-port) 32 (current-output-port))) 33 34(define-type-of-thread mythread) 35 36(define t10 (make-mythread)) ;; create some uninitialized threads 37(define t11 (make-mythread)) 38(define t12 (make-mythread)) 39(define t13 (make-mythread)) 40 41(check-equal? (thread-name t1) (void)) 42(check-equal? (thread-name t2) 't2) 43(check-equal? (thread-name t3) 't3) 44(check-equal? (thread-name t4) (void)) 45(check-equal? (thread-name t5) 't5) 46(check-equal? (thread-name t6) 't6) 47(check-equal? (thread-name t7) 't7) 48(check-equal? (thread-name t8) 't8) 49 50(check-tail-exn uninitialized-thread-exception? (lambda () (thread-name t10))) 51(check-tail-exn uninitialized-thread-exception? (lambda () (thread-name t11))) 52(check-tail-exn uninitialized-thread-exception? (lambda () (thread-name t12))) 53(check-tail-exn uninitialized-thread-exception? (lambda () (thread-name t13))) 54 55(check-eq? (thread-init! t10 56 (lambda () 101010)) 57 t10) 58 59(check-eq? (thread-init! t11 60 (lambda () 111111) 61 't11) 62 t11) 63 64(check-eq? (thread-init! t12 65 (lambda () 121212) 66 't12 67 tg) 68 t12) 69 70(check-equal? (thread-name t10) (void)) 71(check-equal? (thread-name t11) 't11) 72(check-equal? (thread-name t12) 't12) 73 74(check-tail-exn uninitialized-thread-exception? (lambda () (thread-name t13))) 75 76(check-equal? (thread-join! (thread-start! t1)) 111) 77(check-equal? (thread-join! (thread-start! t2)) 222) 78(check-equal? (thread-join! (thread-start! t3)) 333) 79(check-equal? (thread-join! (thread-start! t4)) 444) 80(check-equal? (thread-join! (thread-start! t5)) 555) 81(check-equal? (thread-join! (thread-start! t6)) 666) 82(check-equal? (thread-join! (thread-start! t7)) 777) 83(check-equal? (thread-join! (thread-start! t8)) 888) 84(check-equal? (thread-join! (thread-start! t10)) 101010) 85(check-equal? (thread-join! (thread-start! t11)) 111111) 86(check-equal? (thread-join! (thread-start! t12)) 121212) 87 88(check-equal? (thread-name t1) (void)) 89(check-equal? (thread-name t2) 't2) 90(check-equal? (thread-name t3) 't3) 91(check-equal? (thread-name t4) (void)) 92(check-equal? (thread-name t5) 't5) 93(check-equal? (thread-name t6) 't6) 94(check-equal? (thread-name t7) 't7) 95(check-equal? (thread-name t8) 't8) 96(check-equal? (thread-name t10) (void)) 97(check-equal? (thread-name t11) 't11) 98(check-equal? (thread-name t12) 't12) 99 100(check-tail-exn uninitialized-thread-exception? (lambda () (thread-name t13))) 101 102(check-tail-exn type-exception? (lambda () (thread-name #f))) 103 104(check-tail-exn wrong-number-of-arguments-exception? (lambda () (thread-name))) 105(check-tail-exn wrong-number-of-arguments-exception? (lambda () (thread-name t1 #f))) 106