[CM] stop and sprout in one block

Heinrich Taube taube at illinois.edu
Mon May 27 07:54:10 PDT 2013


> This seems to even stop (proc) from being sprouted!
> I can't use id's because it would be too much of a trouble naming 
> and keeping track of all the 

when you call

(begin (stop)
	(sprout …))

these function are not synchronies in the way you are expecting. scheme and the scheduler are not the same thread. these scheme  functions add "execution nodes" to the scheduler thread from the scheme thread. the scheduler places stop nodes  at the head of its queue  and they flush the queue or specific nodes in the queue *when they are evaluated by the scheduler*. so the first call adds a stop node, the second call added process node(s), then when the scheduler wakes up it stop what you just added.

i think to approximate what you want either (1) Type Command-K  and then evaluate the expression. (2) evaluate (stop) and then evaluate (sprout),  or (3) keep them together as you have but have the stop selectively stop only the process that you already sprouted in the previous pass (by associating ids with them)






On May 21, 2013, at 2:18 AM, Antoine <antoinedaurat at googlemail.com> wrote:

> Hello,
> 
> I would like to stop all running processes and then sprout the next ones
> on a single evaluation. 
> 
> (define (proc)
> (process repeat 100 do
>          (print (pick 1 2))
>          (wait .5)
>  ))
> 
> (begin
> (stop)
> (sprout (proc))
> )
> 
> This seems to even stop (proc) from being sprouted!
> I can't use id's because it would be too much of a trouble naming 
> and keeping track of all the 
> processes I am sprouting each time... I just would like to "flush" 
> and keep on.
> 
> Thank you for your time and your reply!
> 
> Antoine
> 
> _______________________________________________
> Cmdist mailing list
> Cmdist at ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist




More information about the Cmdist mailing list