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