須藤です。

In <CAHGf_=piq-HnqW=K2onmR1cg_bUxAEUVyVx+zh8Uukf_wxuirQ / mail.gmail.com>
  "[ruby-dev:44021] Re: [ruby-core:37707] [Ruby 1.9 - Bug #3781] FIBER_USE_NATIVE が有効だと落ちるスクリプトがある" on Sun, 3 Jul 2011 00:01:59 +0900,
  KOSAKI Motohiro <kosaki.motohiro / gmail.com> wrote:

> 16に意味は全然ないのですが、何回かに一回だけチェックという論理で
> オーバーヘッドはほぼ無視できるようです。
...
> ~/ruby/trunk% svn diff
> Index: gc.c
> ===================================================================
> --- gc.c        (revision 32355)
> +++ gc.c        (working copy)
> @@ -1614,7 +1614,7 @@
>      obj->as.basic.flags |= FL_MARK;
>      objspace->heap.live_num++;
> 
> -    if (lev > GC_LEVEL_MAX || (lev == 0 && stack_check())) {
> +    if (lev > GC_LEVEL_MAX || (((lev&0xF)==0) && stack_check())) {

16にそれほど意味がないなら、0xFで埋めこむよりは名前を付けて
おいた方が後から見た人が混乱しないかなぁと思いました。

(とりあえず、これで試してみましたという感じのコードかと思い
ますが。。。)