Ok, so I’m using C++ in a project called Titanium and trying to evaluate
Ruby (1.9).
The code looks something like this:
ruby_init();
ruby_init_loadpath();
rb_set_safe_level(0);
ruby_script("ruby");
rb_eval_string_protect(code, &error);
So, this can parse Ruby fine, the only issue is when I require the mutex
lib (needed by Rubygems).
The error I get is: undefined method `synchronize’ for #Mutex:0x1f8cf4
It looks like the mutex class (which is written in C) isn’t getting
loaded properly. Anybody got any ideas as to why?
I should add that other libraries written in C, like StringIO, work
fine.
Alex M. wrote:
Ok, so I’m using C++ in a project called Titanium and trying to evaluate
Ruby (1.9).
The code looks something like this:
ruby_init();
ruby_init_loadpath();
rb_set_safe_level(0);
ruby_script("ruby");
rb_eval_string_protect(code, &error);
So, this can parse Ruby fine, the only issue is when I require the mutex
lib (needed by Rubygems).
The error I get is: undefined method `synchronize’ for #Mutex:0x1f8cf4
It looks like the mutex class (which is written in C) isn’t getting
loaded properly. Anybody got any ideas as to why?
On Aug 10, 2009, at 14:52, Alex M. wrote:
rb_eval_string_protect(code, &error);
So, this can parse Ruby fine, the only issue is when I require the
mutex
lib (needed by Rubygems).
RubyGems requires thread by itself, why are you doing it? Why not
require ‘rubygems’?
Eric H. wrote:
On Aug 10, 2009, at 14:52, Alex M. wrote:
rb_eval_string_protect(code, &error);
So, this can parse Ruby fine, the only issue is when I require the
mutex
lib (needed by Rubygems).
RubyGems requires thread by itself, why are you doing it? Why not
require ‘rubygems’?
When I require ‘rubygems’ I get that error - I traced it back to the
Mutex lib in the thread lib.
In other words, rubygems won’t work.
Also, peculiarly, if I stub out the schedule method on Mutex like this:
require ‘thread’
class ::Mutex
def synchronize
yield
end
end
Then rubygems seems to load fine, but any other gems, such as
activesupport won’t load through rubygems.
It’s really odd…