Hello Arnaud, > But it's not working properly: What I observe is that when I change a > procedure that's called from the background thread, the thread becomes > blocked. Is this some new behaviour that's not taken into account in > those posts?
It's tricky to reproduce such issues without a minimal repro. I wrote my own and I do not experience such behavior. When I run the attached file with `csi -:x test.scm`, I see it printing 1 every 10s. I can then copy-paste `(define (game-loop-iteration) (print 2))` into the REPL and if I wait another 10 seconds, it prints 2. Do you have the same behavior? If yes, then chances are it's the fault of the code change (for example it might perform a thread blocking operation). > $ csi -version > CHICKEN > (c) 2008-2020, The CHICKEN Team > (c) 2000-2007, Felix L. Winkelmann > Version 5.2.0 (rev 317468e4) > macosx-unix-clang-x86-64 [ 64bit dload ptables ] > > I am on Mac OS X Catalina 10.15.7. I'm on the same CHICKEN version, but on Arch Linux. Vasilij
(import scheme)
(import (chicken base))
(import (srfi 18))
(define (game-loop-iteration)
(print 1))
(define (main)
(let loop ()
(game-loop-iteration)
(thread-sleep! 10)
(loop)))
(define game-thread (thread-start! main))
(cond-expand
((or chicken-script compiling)
(thread-join! game-thread))
(else))
(cond-expand
(csi (import live-define))
(else))
#;
(when (eqv? 'terminated (thread-state game-thread))
(set! game-thread (thread-start! main)))
signature.asc
Description: PGP signature
