Hi,

I'm looking at using Ruby threads from C and I've got some questions that
I can't find the answer to...

How do you pass a function as a block to create a new thread in C?

Are C functions considered atomic?  That is, do I need to do any locking
or specify critical sections to Ruby if I only need to lock around
the body of the C function?  If so, is there an easy C interface for this?

Will passing in a C function have any effect?

And a more general Ruby thread question: How often can I expect Ruby to
switch threads?  That is, what level of atomicity does Ruby have?  (And is
atomicity a word? ;)

Thanks,
Emil