This repository was archived by the owner on Jul 18, 2025. It is now read-only.
  
  
  
  
    
    
    
      
    
  
  
    
File tree Expand file tree Collapse file tree 1 file changed +25
-1
lines changed Expand file tree Collapse file tree 1 file changed +25
-1
lines changed Original file line number Diff line number Diff line change 1818; ;;;
1919
2020(define-module (tests basic)
21-   #:use-module (fibers))
21+   #:use-module (fibers)
22+   #:use-module (srfi srfi-1))
2223
2324(define  failed?  #f)
2425
9697
9798; ; sleep wakeup order
9899
100+ (define  sleep-list-mtx  (make-mutex 'unchecked-unlock  'allow-external-unlock  ))
101+ 
102+ (define  sleep-list  '())
103+ (define  (add-order  n )
104+   (lock-mutex sleep-list-mtx)
105+   (set!  sleep-list (cons  n sleep-list))
106+   (unlock-mutex sleep-list-mtx))
107+ 
108+ (assert-run-fibers-terminates
109+  (begin 
110+    (spawn-fiber (lambda  () (sleep 0.0 ) (add-order 0 )))
111+    (spawn-fiber (lambda  () (sleep 0.0009 ) (add-order 9 )))
112+    (spawn-fiber (lambda  () (sleep 0.0007 ) (add-order 7 )))
113+    (spawn-fiber (lambda  () (sleep 0.0005 ) (add-order 5 )))
114+    (spawn-fiber (lambda  () (sleep 0.0003 ) (add-order 3 )))
115+    (spawn-fiber (lambda  () (sleep 0.0001 ) (add-order 1 )))
116+    (spawn-fiber (lambda  () (sleep 0.0002 ) (add-order 2 )))
117+    (spawn-fiber (lambda  () (sleep 0.0004 ) (add-order 4 )))
118+    (spawn-fiber (lambda  () (sleep 0.0006 ) (add-order 6 )))
119+    (spawn-fiber (lambda  () (sleep 0.0008 ) (add-order 8 )))))
120+ 
121+ (assert-equal (iota 10  0 ) (reverse  sleep-list))
122+ 
99123; ; fib using channels
100124
101125; ; sleep durations
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments