about summary refs log tree commit homepage
path: root/ext
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-02-08 17:14:41 -0800
committerEric Wong <normalperson@yhbt.net>2010-02-08 17:14:41 -0800
commit2dd3e22782090dc347429e306569f687fa794d06 (patch)
tree89dc09a023bb6a40a18859ae133491b7bbb0e332 /ext
parent74ab49d2f02d65fb4d2915563d8b4c4f026e4657 (diff)
downloadclogger-2dd3e22782090dc347429e306569f687fa794d06.tar.gz
Clogger may set this value independently of "rack.multithread"
since Actor/Fiber-based servers may have multiple instances of
Clogger wrapping different response bodies and yet be
incompatible with "rack.multithread"
Diffstat (limited to 'ext')
-rw-r--r--ext/clogger_ext/clogger.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/clogger_ext/clogger.c b/ext/clogger_ext/clogger.c
index f2d82d6..da6b5d2 100644
--- a/ext/clogger_ext/clogger.c
+++ b/ext/clogger_ext/clogger.c
@@ -599,6 +599,19 @@ static VALUE clogger_init(int argc, VALUE *argv, VALUE self)
                 tmp = rb_hash_aref(o, ID2SYM(rb_intern("format")));
                 if (!NIL_P(tmp))
                         fmt = tmp;
+
+                tmp = rb_hash_aref(o, ID2SYM(rb_intern("reentrant")));
+                switch (TYPE(tmp)) {
+                case T_TRUE:
+                        c->reentrant = 1;
+                        break;
+                case T_FALSE:
+                        c->reentrant = 0;
+                case T_NIL:
+                        break;
+                default:
+                        rb_raise(rb_eArgError, ":reentrant must be boolean");
+                }
         }
 
         init_buffers(c);