diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-10-09 08:19:46 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-10-09 08:19:46 +0000 |
commit | e8b79570d6099bc57602641f6811b5bc8759c952 (patch) | |
tree | 4a8a626ea6ead71ff829f03765bc2fecf66eb9b1 /eval.c | |
parent | 7c9c2bc73b2bdfcde65f8691d8eef609b1e42d93 (diff) |
* eval.c (thread_status_name): separated from
rb_thread_inspect(). return string expression for thread status.
* eval.c (rb_thread_status, rb_thread_inspect): use
thread_status_name().
* eval.c (rb_thread_priority_set): return the priority not but
self.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 38 |
1 files changed, 21 insertions, 17 deletions
@@ -6997,6 +6997,24 @@ struct thread { #define FOREACH_THREAD(x) FOREACH_THREAD_FROM(curr_thread,x) #define END_FOREACH(x) END_FOREACH_FROM(curr_thread,x) +static const char * +thread_status_name(status) + enum thread_status status; +{ + switch (status) { + case THREAD_RUNNABLE: + return "run"; + case THREAD_STOPPED: + return "sleep"; + case THREAD_TO_KILL: + return "aborting"; + case THREAD_KILLED: + return "dead"; + default: + return "unknown"; + } +} + /* $SAFE accessor */ void rb_set_safe_level(level) @@ -8014,7 +8032,7 @@ rb_thread_priority_set(thread, prio) th->priority = NUM2INT(prio); rb_thread_schedule(); - return thread; + return prio; } static VALUE @@ -8354,9 +8372,7 @@ rb_thread_status(thread) return Qfalse; } - if (th->status == THREAD_STOPPED) - return rb_str_new2("sleep"); - return rb_str_new2("run"); + return rb_str_new2(thread_status_name(th->status)); } static VALUE @@ -8611,21 +8627,9 @@ rb_thread_inspect(thread) { char *cname = rb_class2name(CLASS_OF(thread)); rb_thread_t th = rb_thread_check(thread); - char *status; + const char *status = thread_status_name(th->status); VALUE str; - switch (th->status) { - case THREAD_RUNNABLE: - status = "run"; break; - case THREAD_STOPPED: - status = "sleep"; break; - case THREAD_TO_KILL: - status = "aborting"; break; - case THREAD_KILLED: - status = "dead"; break; - default: - status = "unknown"; break; - } str = rb_str_new(0, strlen(cname)+7+16+9+1); /* 7:tags 16:addr 9:status 1:nul */ sprintf(RSTRING(str)->ptr, "#<%s:0x%lx %s>", cname, thread, status); RSTRING(str)->len = strlen(RSTRING(str)->ptr); |