I think you misunderstood my suggestion. It has nothing to do with mutexes or threads. Take repl.scm for example. It has a top-level-let, initially (inlet), or its equivalent (sublet (rootlet)). All evaluation and loading by default takes place in that let, not the rootlet. So:
/home/bil/cl/ repl <1> (define x 32) 32 <2> (defined? 'x) #t <3> (defined? 'x (rootlet)) #f <4> (set! (*repl* 'top-level-let) (inlet)) (inlet) <5> (defined? 'x) #f So by resetting top-level-let we're back to the pristine start-up state, just as if we had freed the initial repl and started a new one. There are a few tricky points involving the built-in hooks, but you can save their startup state, and re-establish them when you clear out the top-level-let. In the multi-s7 case, I'd have a pool of s7's. There are no mutexes in s7.c (except some that Kjetil uses for debugging). _______________________________________________ Cmdist mailing list [email protected] https://cm-mail.stanford.edu/mailman/listinfo/cmdist
