[#26266] pragma on ripper — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#26284] ext/tk/sample/tkextlib/tile/demo.rb で TypeError — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#26298] ext/tk/sample/tkextlib/tile/themes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#26305] ext/tk/sample/tkextlib/ICONS/viewIcons.rb — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
永井@知能.九工大です.
[#26312] rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org>
最近、とあるプログラム(五月雨)が、無限ループに陥ることが何回かありました。
なかだです。
In article <TYOMLEM04FRaqbC8wSA00000024@tyomlvem02.e2k.ad.ge.com>,
なかだです。
In article <TYOMLEM04FRaqbC8wSA00000025@tyomlvem02.e2k.ad.ge.com>,
なかだです。
In article <TYOMLEM04Rqf69aZbLA0000002d@tyomlvem02.e2k.ad.ge.com>,
なかだです。
In article <200506101543.j5AFhToG009328@sharui.nakada.niregi.kanuma.tochigi.jp>,
In article <8764wlil9l.fsf@m17n.org>,
なかだです。
In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <1118583170.298416.26464.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1118586617.180748.27381.nullmailer@x31.priv.netlab.jp>,
[#26324] XMLRPC charset — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26358] test failures and errors — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26387] warningを減らす — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26405] WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org>
NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント
ごとうゆうぞうです。
In article <20050708.175802.957830318.gotoyuzo@sawara.does.notwork.org>,
In message <87fyupzgcq.fsf@m17n.org>,
In article <20050708.211519.179953950.gotoyuzo@sawara.does.notwork.org>,
In message <87d5ptzdpc.fsf@m17n.org>,
前田です。
In article <42CF1AF2.5000407@ruby-lang.org>,
In message <878y0erpv7.fsf@m17n.org>,
[#26410] irbのlexerが数値認識に失敗 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26417] test.rb failed 167W: ruby 1.9.0 (2005-06-30) [i686-linux] (boron) — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26421] Subversion — Shugo Maeda <shugo@...>
前田です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
山本です。
須藤です.
In article <20050703.152549.41008576.kou@cozmixng.org>,
[ruby-dev:26333] Re: rb_gc_mark_threads spin
In article <8764wlil9l.fsf@m17n.org>,
Tanaka Akira <akr@m17n.org> writes:
> 直ってない感じです。
やっと自分で調べてみたのですが、こういう直しかたはどうでしょうね?
rb_thread_remove の時点で curr_thread を変えるとうまく動かなくなる原因
はよくわかっていないのですが。
なお、問題の修正は rb_gc_mark_threads のところだけで、あとは FD_ZERO
が文の場合の対処です。
Index: eval.c
===================================================================
RCS file: /src/ruby/eval.c,v
retrieving revision 1.788
diff -u -p -r1.788 eval.c
--- eval.c 10 Jun 2005 14:57:37 -0000 1.788
+++ eval.c 11 Jun 2005 10:30:23 -0000
@@ -9816,7 +9816,7 @@ enum thread_status {
# endif
#endif
-#ifdef NFDBITS
+#ifdef HAVE_RB_FD_INIT
void
rb_fd_init(fds)
volatile rb_fdset_t *fds;
@@ -10002,30 +10002,30 @@ struct thread_status_t {
rb_thread_t join;
};
-#define THREAD_COPY_STATUS(src, dst) (void)( \
- (dst)->node = (src)->node, \
+#define THREAD_COPY_STATUS(src, dst) do { \
+ (dst)->node = (src)->node; \
\
- (dst)->tracing = (src)->tracing, \
- (dst)->errinfo = (src)->errinfo, \
- (dst)->last_status = (src)->last_status, \
- (dst)->last_line = (src)->last_line, \
- (dst)->last_match = (src)->last_match, \
+ (dst)->tracing = (src)->tracing; \
+ (dst)->errinfo = (src)->errinfo; \
+ (dst)->last_status = (src)->last_status; \
+ (dst)->last_line = (src)->last_line; \
+ (dst)->last_match = (src)->last_match; \
\
- (dst)->safe = (src)->safe, \
+ (dst)->safe = (src)->safe; \
\
- (dst)->status = (src)->status, \
- (dst)->wait_for = (src)->wait_for, \
- (dst)->fd = (src)->fd, \
- (dst)->readfds = (src)->readfds, \
- (dst)->writefds = (src)->writefds, \
- (dst)->exceptfds = (src)->exceptfds, \
- rb_fd_init(&(src)->readfds), \
- rb_fd_init(&(src)->writefds), \
- rb_fd_init(&(src)->exceptfds), \
- (dst)->select_value = (src)->select_value, \
- (dst)->delay = (src)->delay, \
- (dst)->join = (src)->join, \
- 0)
+ (dst)->status = (src)->status; \
+ (dst)->wait_for = (src)->wait_for; \
+ (dst)->fd = (src)->fd; \
+ (dst)->readfds = (src)->readfds; \
+ (dst)->writefds = (src)->writefds; \
+ (dst)->exceptfds = (src)->exceptfds; \
+ rb_fd_init(&(src)->readfds); \
+ rb_fd_init(&(src)->writefds); \
+ rb_fd_init(&(src)->exceptfds); \
+ (dst)->select_value = (src)->select_value; \
+ (dst)->delay = (src)->delay; \
+ (dst)->join = (src)->join; \
+} while (0)
static int
thread_set_raised()
@@ -10225,9 +10225,9 @@ rb_gc_mark_threads()
rb_gc_mark((VALUE)ruby_cref);
if (!curr_thread) return;
- FOREACH_THREAD(th) {
+ FOREACH_THREAD_FROM(main_thread, th) {
rb_gc_mark(th->thread);
- } END_FOREACH(th);
+ } END_FOREACH_FROM(main_thread, th);
if (new_thread.thread) {
rb_gc_mark(new_thread.thread->thread);
rb_gc_mark(new_thread.proc);
Index: ext/io/wait/wait.c
===================================================================
RCS file: /src/ruby/ext/io/wait/wait.c,v
retrieving revision 1.5
diff -u -p -r1.5 wait.c
--- ext/io/wait/wait.c 3 Jun 2005 14:23:17 -0000 1.5
+++ ext/io/wait/wait.c 11 Jun 2005 10:30:28 -0000
@@ -105,7 +105,7 @@ io_wait(argc, argv, io)
n = (int)rb_ensure(wait_readable, (VALUE)&arg,
(VALUE (*)_((VALUE)))rb_fd_term, (VALUE)&arg.fds);
#else
- n = rb_thread_select(fd + 1, rb_fd_ptr(&rd), NULL, NULL, tp)
+ n = rb_thread_select(fd + 1, rb_fd_ptr(&arg.fds), NULL, NULL, arg.timeout);
#endif
if (n < 0)
rb_sys_fail(0);
--
[田中 哲][たなか あきら][Tanaka Akira]