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

from gidforums.com

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 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.

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 Sep 9, 5:08 am, Reid Thompson <reid.thomp...@ateb.com> 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

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

> Mike B.

fromhttp://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\(&quot;Fork failed; cpid == \-1\\n&quot;\);
             break;

    case 0: child\_pid = getpid\(\);
            for \(i = 0; i &lt; 10; i\+\+\) \{
                printf\(&quot;%d: this is the child, pid = %d\\n&quot;, i, child\_pid\);
                sleep\(1\);
            \}
            exit\(0\);

    default: printf\(&quot;This is the parent: waiting for %d to finish\\n&quot;, cpid\);
             waitpid\(cpid, NULL, 0\);
             printf\(&quot;Ttttthat&#39;s all, folks\\n&quot;\);
\}
return 0;

}

perhaps a look at ruby2c...

···

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

On Sep 9, 5:08 am, Reid Thompson <reid.thomp...@ateb.com> 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

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.

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.

···

On Sep 10, 5:32 am, Reid Thompson <reid.thomp...@ateb.com> wrote:

On Thu, 2009-09-10 at 08:05 +0900, Mike Barsalou wrote:
> On Sep 9, 5:08 am, Reid Thompson <reid.thomp...@ateb.com> 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
> 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.

perhaps a look at ruby2c...

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, 8:57 am, Mike Barsalou <barj...@attglobal.net> wrote:

On Sep 10, 5:32 am, Reid Thompson <reid.thomp...@ateb.com> wrote:

> On Thu, 2009-09-10 at 08:05 +0900, Mike Barsalou wrote:
> > On Sep 9, 5:08 am, Reid Thompson <reid.thomp...@ateb.com> 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
> > 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.

> 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