[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03276] Re: Embedding Ruby

From: ts <decoux@...>
Date: 2000-06-12 08:03:02 UTC
List: ruby-talk #3276
>>>>> "G" == Geoff Cadien <geoff@nm156.org> writes:

G> #include <pthread.h>

 ruby is multi threaded, this mean that you don't need to use pthread.

G>         module = rb_require("test.rb");

 rb_require return Qtrue if the file was successfully loaded. If "test.rb"
 create a module, or a class you can call rb_const_get() to retrieve the
 VALUE associated with the module (class), otherwise use rb_cObject (if the
 function is at top level)

G>         status = pthread_create(&thread_id, NULL, ruby_thread, NULL);
G>         pthread_join(thread_id, NULL);

 Here you must use rb_thread_create(), and call `join'

 A little example :

pigeon% cat thr.c
#include <ruby.h>

static VALUE
thr_run(obj)
    VALUE obj;
{
    int i;
    for (i = 0; i < 2; i++) {
        rb_funcall(obj, rb_intern("test"), 0);
    }
    return Qnil;
}

int main()
{
    VALUE module, thread;
    ruby_init();
    rb_require("test");
    module = rb_const_get(rb_cObject, rb_intern("Test"));
    thread = rb_thread_create(thr_run, (void *)module);
    rb_funcall(thread, rb_intern("join"), 0);
    return 0;
}
pigeon% 

pigeon% cat test.rb
module Test
   def test()
      print "Hello\n"
   end
   module_function :test
end
pigeon% 

pigeon% thr
Hello
Hello
pigeon% 

 Look at mod_ruby.c, you have a more complete example.


Guy Decoux

In This Thread

Prev Next