From 2dd3e22782090dc347429e306569f687fa794d06 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 8 Feb 2010 17:14:41 -0800 Subject: Allow :reentrant flag to be forced true/false 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" --- ext/clogger_ext/clogger.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'ext') 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); -- cgit v1.2.3-24-ge0c7