Duplicate this code in C

Is there a way to duplicate this code using C?

http://pastie.org/610698

The goal is to launch multiple ruby processes from a C program.

Mike B.

barjunk wrote:

Is there a way to duplicate this code using C?

A very probably yes. Passenger does it. Others (mongrel, etc…) do it.
So can you :wink:

kaspar

On Wed, 2009-09-09 at 15:35 +0900, barjunk wrote:

Is there a way to duplicate this code using C?

http://pastie.org/610698

The goal is to launch multiple ruby processes from a C program.

Mike B.

from http://www.gidforums.com/t-11552.html

mod to meet needs…google for more info…

#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int i;
pid_t cpid;
pid_t child_pid;
cpid = fork();

switch (cpid) {
    case -1: printf("Fork failed; cpid == -1\n");
             break;

    case 0: child_pid = getpid();
            for (i = 0; i < 10; i++) {
                printf("%d: this is the child, pid = %d\n", i, 

child_pid);
sleep(1);
}
exit(0);

    default: printf("This is the parent: waiting for %d to 

finish\n", cpid);
waitpid(cpid, NULL, 0);
printf(“Ttttthat’s all, folks\n”);
}
return 0;
}

On Sep 9, 5:08 am, Reid T. [email protected] wrote:

pid_t cpid;
                sleep(1);

Thanks for this. I should have been more specific and say that I was
trying to write ruby code in C to then launch the forks…so I really
mean to duplicate the ruby code to be ruby code …in C…

Kaspar,

Passenger does it, but using ruby. Mongrel doesn’t install yet in
1.9, although I need to still go through the online code…I’m going
to guess they do it in ruby as well.

Any chance you could point me to actual code that does this? I looked
at eventmachine too, but I’m not good enough to figure out what I
need, which is kinda why I’m here.

Again, thanks for any tips.

Mike B.

On Thu, 2009-09-10 at 08:05 +0900, Mike B. wrote:

On Sep 9, 5:08 am, Reid T. [email protected] wrote:

On Wed, 2009-09-09 at 15:35 +0900, barjunk wrote:

Is there a way to duplicate this code using C?

http://pastie.org/610698

Any chance you could point me to actual code that does this? I looked
at eventmachine too, but I’m not good enough to figure out what I
need, which is kinda why I’m here.

Again, thanks for any tips.

Mike B.

perhaps a look at ruby2c…

On Sep 10, 8:57 am, Mike B. [email protected] wrote:

Thanks for this. I should have been more specific and say that I was
at eventmachine too, but I’m not good enough to figure out what I
whirl.

Mike B.

ruby2c still not working, I filed a bug report:

http://rubyforge.org/tracker/index.php?func=detail&aid=27086&group_id=443&atid=1766

Mike B.

On Sep 10, 5:32 am, Reid T. [email protected] wrote:

Kaspar,

Mike B.

perhaps a look at ruby2c…

Another good idea. I’m having trouble getting that to work as
well… There is an upgrade to 1.0.0.7 so I’m going to give that a
whirl.

Mike B.

Hi Mike,

Any chance you could point me to actual code that does this? =A0I
looke=
d
at eventmachine too, but I’m not good enough to figure out what I
need, which is kinda why I’m here.

I think you need to look at ruby as just another executable. There are
plenty of examples on the net on how to do

if (! fork()) {
exec(SOME_PROGRAM);
}

on the net. Ruby isn’t any different - when forked and execed it is
just a binary.

kaspar

PS: Didn’t see your reply on my nttp server :frowning:


I’m trying a new usenet client for Mac, Nemo OS X, since 0 days.

You can download it at http://www.malcom-mac.com/nemo