[macruby-changes] [1012] MacRuby/branches/experimental
source_changes at macosforge.org
source_changes at macosforge.org
Fri Mar 20 00:07:58 PDT 2009
Revision: 1012
http://trac.macosforge.org/projects/ruby/changeset/1012
Author: lsansonetti at apple.com
Date: 2009-03-20 00:07:50 -0700 (Fri, 20 Mar 2009)
Log Message:
-----------
ported some methods of process.c to rb_objc_define_method()
Modified Paths:
--------------
MacRuby/branches/experimental/include/ruby/intern.h
MacRuby/branches/experimental/process.c
Modified: MacRuby/branches/experimental/include/ruby/intern.h
===================================================================
--- MacRuby/branches/experimental/include/ruby/intern.h 2009-03-20 06:51:26 UTC (rev 1011)
+++ MacRuby/branches/experimental/include/ruby/intern.h 2009-03-20 07:07:50 UTC (rev 1012)
@@ -244,8 +244,6 @@
NORETURN(void rb_exc_raise(VALUE));
NORETURN(void rb_exc_fatal(VALUE));
-VALUE rb_f_exit(int,VALUE*);
-VALUE rb_f_abort(int,VALUE*);
void rb_remove_method(VALUE, const char*);
#define rb_disable_super(klass, name) ((void)0)
#define rb_enable_super(klass, name) ((void)0)
@@ -481,7 +479,6 @@
int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s);
int rb_exec(const struct rb_exec_arg*);
rb_pid_t rb_fork(int*, int (*)(void*), void*, VALUE);
-VALUE rb_f_exec(int,VALUE*);
rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags);
void rb_syswait(rb_pid_t pid);
rb_pid_t rb_spawn(int, VALUE*);
Modified: MacRuby/branches/experimental/process.c
===================================================================
--- MacRuby/branches/experimental/process.c 2009-03-20 06:51:26 UTC (rev 1011)
+++ MacRuby/branches/experimental/process.c 2009-03-20 07:07:50 UTC (rev 1012)
@@ -1713,8 +1713,8 @@
* # never get here
*/
-VALUE
-rb_f_exec(int argc, VALUE *argv)
+static VALUE
+rb_f_exec(VALUE rcv, SEL sel, int argc, VALUE *argv)
{
struct rb_exec_arg earg;
@@ -2415,18 +2415,14 @@
*/
static VALUE
-rb_f_fork(VALUE obj)
+rb_f_fork(VALUE obj, SEL sel)
{
-#if defined(HAVE_FORK) && !defined(__NetBSD__)
rb_pid_t pid;
rb_secure(2);
switch (pid = rb_fork(0, 0, 0, Qnil)) {
case 0:
-#ifdef linux
- after_exec();
-#endif
//rb_thread_atfork();
if (rb_block_given_p()) {
int status;
@@ -2443,9 +2439,6 @@
default:
return PIDT2NUM(pid);
}
-#else
- rb_notimplement();
-#endif
}
@@ -2461,7 +2454,7 @@
*/
static VALUE
-rb_f_exit_bang(int argc, VALUE *argv, VALUE obj)
+rb_f_exit_bang(VALUE obj, SEL sel, int argc, VALUE *argv)
{
VALUE status;
int istatus;
@@ -2543,8 +2536,8 @@
* in finalizer
*/
-VALUE
-rb_f_exit(int argc, VALUE *argv)
+static VALUE
+rb_f_exit(VALUE obj, SEL sel, int argc, VALUE *argv)
{
VALUE status;
int istatus;
@@ -2588,8 +2581,8 @@
VALUE rb_io_puts(VALUE out, SEL sel, int argc, VALUE *argv);
-VALUE
-rb_f_abort(int argc, VALUE *argv)
+static VALUE
+rb_f_abort(VALUE obj, SEL sel, int argc, VALUE *argv)
{
extern void ruby_error_print(void);
@@ -2749,7 +2742,7 @@
*/
static VALUE
-rb_f_system(int argc, VALUE *argv)
+rb_f_system(VALUE obj, SEL sel, int argc, VALUE *argv)
{
int status;
@@ -2921,17 +2914,13 @@
*/
static VALUE
-rb_f_spawn(int argc, VALUE *argv)
+rb_f_spawn(VALUE obj, SEL sel, int argc, VALUE *argv)
{
rb_pid_t pid;
pid = rb_spawn(argc, argv);
if (pid == -1) rb_sys_fail(RSTRING_PTR(argv[0]));
-#if defined(HAVE_FORK) || defined(HAVE_SPAWNV)
return PIDT2NUM(pid);
-#else
- return Qnil;
-#endif
}
/*
@@ -5082,14 +5071,14 @@
{
rb_define_virtual_variable("$?", rb_last_status_get, 0);
rb_define_virtual_variable("$$", get_pid, 0);
- rb_define_global_function("exec", rb_f_exec, -1);
- rb_define_global_function("fork", rb_f_fork, 0);
- rb_define_global_function("exit!", rb_f_exit_bang, -1);
- rb_define_global_function("system", rb_f_system, -1);
- rb_define_global_function("spawn", rb_f_spawn, -1);
+ rb_objc_define_method(rb_mKernel, "exec", rb_f_exec, -1);
+ rb_objc_define_method(rb_mKernel, "fork", rb_f_fork, 0);
+ rb_objc_define_method(rb_mKernel, "exit!", rb_f_exit_bang, -1);
+ rb_objc_define_method(rb_mKernel, "system", rb_f_system, -1);
+ rb_objc_define_method(rb_mKernel, "spawn", rb_f_spawn, -1);
rb_objc_define_method(rb_mKernel, "sleep", rb_f_sleep, -1);
- rb_define_global_function("exit", rb_f_exit, -1);
- rb_define_global_function("abort", rb_f_abort, -1);
+ rb_objc_define_method(rb_mKernel, "exit", rb_f_exit, -1);
+ rb_objc_define_method(rb_mKernel, "abort", rb_f_abort, -1);
rb_mProcess = rb_define_module("Process");
@@ -5104,12 +5093,12 @@
rb_define_const(rb_mProcess, "WUNTRACED", INT2FIX(0));
#endif
- rb_define_singleton_method(rb_mProcess, "exec", rb_f_exec, -1);
- rb_define_singleton_method(rb_mProcess, "fork", rb_f_fork, 0);
- rb_define_singleton_method(rb_mProcess, "spawn", rb_f_spawn, -1);
- rb_define_singleton_method(rb_mProcess, "exit!", rb_f_exit_bang, -1);
- rb_define_singleton_method(rb_mProcess, "exit", rb_f_exit, -1);
- rb_define_singleton_method(rb_mProcess, "abort", rb_f_abort, -1);
+ rb_objc_define_method(*(VALUE *)rb_mProcess, "exec", rb_f_exec, -1);
+ rb_objc_define_method(*(VALUE *)rb_mProcess, "fork", rb_f_fork, 0);
+ rb_objc_define_method(*(VALUE *)rb_mProcess, "spawn", rb_f_spawn, -1);
+ rb_objc_define_method(*(VALUE *)rb_mProcess, "exit!", rb_f_exit_bang, -1);
+ rb_objc_define_method(*(VALUE *)rb_mProcess, "exit", rb_f_exit, -1);
+ rb_objc_define_method(*(VALUE *)rb_mProcess, "abort", rb_f_abort, -1);
rb_define_module_function(rb_mProcess, "kill", rb_f_kill, -1); /* in signal.c */
rb_define_module_function(rb_mProcess, "wait", proc_wait, -1);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090320/78429a8a/attachment-0001.html>
More information about the macruby-changes
mailing list