[#45703] test_advise failure on GNU/Linux — Tanaka Akira <tanaka.akira@...>
今朝、気がついたのですが、手元で test_advise が失敗します。
小崎です
>> /tmp は tmpfs で、カレントディレクトリは ext3 なのですが、
2012年6月22日 16:42 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#45723] Developers' meeting (7/21) — Yusuke Endoh <mame@...>
Hello, committers
Four seats are now left.
[#45735] [ruby-trunk - Feature #6587][Open] proposal: adding new methods File.rootname and Pathname#rootname — "usa (Usaku NAKAMURA)" <usa@...>
[#45745] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult — SASADA Koichi <ko1@...>
見逃していました.
2012/6/15 SASADA Koichi <ko1@atdot.net>:
ささだです.
2012/6/15 SASADA Koichi <ko1@atdot.net>:
ささだです.
2012/6/19 SASADA Koichi <ko1@atdot.net>:
こんにちは、なかむら(う)です。
2012/6/15 U.Nakamura <usa@garbagecollect.jp>:
なかだです。
[#45769] [ruby-trunk - Bug #6606][Open] default_external encoding and STDOUT and UTF-8 — "shyouhei (Shyouhei Urabe)" <shyouhei@...>
[#45780] Re: [ruby-changes:24083] nobu:r36134 (trunk): process.c: no method calls in async-signal-safe — Tanaka Akira <akr@...>
2012/6/19 nobu <ko1@atdot.net>:
[#45794] :new_pgroup and :pgroup option for spawn. — Tanaka Akira <akr@...>
process.c で気がついたのですが、spawn に Windows 用の :new_pgroup というオプションが
こんにちは、なかむら(う)です。
2012年6月25日 11:27 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
2012年6月25日 11:52 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
2012年6月25日 12:13 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
[#45818] [ruby-trunk - Feature #6643][Open] io.seek(off, :end) — "akr (Akira Tanaka)" <akr@...>
At Mon, 25 Jun 2012 19:32:06 +0900,
2012年6月25日 23:37 SATOH Fumiyasu <fumiyas@osstech.jp>:
[#45826] Question: Thread#kill doesn't throw Exception — SASADA Koichi <ko1@...>
ささだです.
> さらに突っ込んだ質問:
(2012/06/26 4:25), KOSAKI Motohiro wrote:
[ruby-dev:45780] Re: [ruby-changes:24083] nobu:r36134 (trunk): process.c: no method calls in async-signal-safe
2012/6/19 nobu <ko1@atdot.net>:
> nobu 2012-06-19 17:51:57 +0900 (Tue, 19 Jun 2012)
>
> New Revision: 36134
>
> http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36134
>
> Log:
> process.c: no method calls in async-signal-safe
>
> * process.c (rb_execarg_run_options): do not call any methods in the
> async-signal-safe function. mask has been checked with NUM2MODET()
> already and converted with LONG2NUM().
> Index: process.c
> ===================================================================
> --- process.c (revision 36133)
> +++ process.c (revision 36134)
> @@ -17,6 +17,8 @@
> #include "internal.h"
> #include "vm_core.h"
>
> +#define STATIC_ASSERT(name, expr) typedef int static_assert_##name##_check[1 - 2*!(expr)]
> +
> #include <stdio.h>
> #include <errno.h>
> #include <signal.h>
> @@ -1595,6 +1597,7 @@
> hide_obj(rb_str_dup(val)));
> }
> else if (id == rb_intern("umask")) {
> + STATIC_ASSERT(sizeof_mode_t, sizeof(long) >= sizeof(mode_t)); /* for LONG2NUM */
> mode_t cmask = NUM2MODET(val);
> if (!NIL_P(rb_ary_entry(options, EXEC_OPTION_UMASK))) {
> rb_raise(rb_eArgError, "umask option specified twice");
> @@ -2707,7 +2710,7 @@
>
> obj = rb_ary_entry(options, EXEC_OPTION_UMASK);
> if (!NIL_P(obj)) {
> - mode_t mask = NUM2MODET(obj);
> + mode_t mask = (mode_t)FIX2LONG(obj); /* no method calls */
> mode_t oldmask = umask(mask); /* never fail */ /* async-signal-safe */
> if (!NIL_P(soptions))
> rb_ary_store(soptions, EXEC_OPTION_UMASK, MODET2NUM(oldmask));
どういう状況でこの NUM2MODET からメソッド呼び出しが起こるのか
理解できなかったんですが、どういう話なんでしょう?
--
[田中 哲][たなか あきら][Tanaka Akira]