I started up a ruby group at my university and this weeks 'challenge'
was to take one of your old messy programs from another language and
port it to Ruby, cleaning it up along the way.  So I chose a terrible
little Tk based wrapper around mpg123 as my challenge.  However, now
I'm thinking I should have picked something that showed how much easier
Ruby is, rather than wander into the gray areas.

The problem with this is, I need to run multiple processes.  If I
wanted it to just work on *nix I could just use fork, as I did in the
perl script but a lot of the people in this group are tied down to
Windows (much to my chagrin :-/) so I figured I'd be nice and make my
ported script Windows friendly.

So my question is, how exactly would you go about writing a program
that could fire a process to a command line application, let it run,
give control back to your main program, and kill the process if an
event occurs (Like the pressing of a 'stop' button or even command line
interaction).

I thought about threading but since the threads are done in process I'm
afraid of explosions and complications galore.

So for those of you Windows savvy Rubyist's, what is a good way to do
multi processing in such a scenario?

For the brave, I've included a link to the source I'm porting, which is
in obvious need of cleanup.

http://cvs.sourceforge.net/viewcvs.py/tkmp3/tk-mp3/src/tk-mp3.pl?rev=1.1.1.1&view=auto