[chuck-users] can there be many ::ms in while?

Martin Ahnelöv operagasten at gmail.com
Fri Aug 3 04:59:38 EDT 2007


fre 2007-08-03 klockan 07:14 +0000 skrev Stephen Ball:
> just to chime in here - i'm VERY new to programming. how do you create
> this kind of concurrency? if, say, you wanted to create two while
> loops, but wanted them to run "side-by-side", but looping at different
> speeds, how would you do it?
> 
> for example:
> 
> while (true){ do something; 100::ms => now;}
> 
> and
> 
> while (true) {do something else; 150::ms => now;}


Yes, you can do that. FYI, it's called threading in traditional
programming languages and is often a pain in the ass, but since chuck
isn't a traditional language it's called sporking and is as simple as
running a chuck file.

I don't know how you create your patches and run them on your system,
but I am a command-line person, so when I start coding in chuck, I open
a command-line and type "chuck --loop". Then I open another command-line
and create/dig out my patch and I run it with "chuck + patch.ck".

Notice how the first command-line with chuck --loop tells us that we
have added a file? Good.

Now I'll create another patch with the second while-loop. I add it to
the virtual machine (the chuck --loop) with another "chuck + patch2.ck".

If you already got both of them done, you can play them synced with the
command "chuck patch.ck patch2.ck"

You can also do sporking in the code, but I haven't looked at that
enough - it's in the help pages, though.

Hope that helps,
Gasten

ps. look at the on-the-fly-commands.



More information about the chuck-users mailing list