We need to add the array to ruby's global_list right after created it;
otherwise it probably gets GCed.
---
ext/unicorn_http/unicorn_http.rl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ext/unicorn_http/unicorn_http.rl b/ext/unicorn_http/unicorn_http.rl
index 6fc3498..357440b 100644
--- a/ext/unicorn_http/unicorn_http.rl
+++ b/ext/unicorn_http/unicorn_http.rl
@@ -921,6 +921,7 @@ void Init_unicorn_http(void)
VALUE mUnicorn, cHttpParser;
mark_ary = rb_ary_new();
+ rb_global_variable(&mark_ary);
mUnicorn = rb_define_module("Unicorn");
cHttpParser = rb_define_class_under(mUnicorn, "HttpParser", rb_cObject);
eHttpParserError =
@@ -976,7 +977,6 @@ void Init_unicorn_http(void)
init_unicorn_httpdate(mark_ary);
OBJ_FREEZE(mark_ary);
- rb_global_variable(&mark_ary);
#ifndef HAVE_RB_HASH_CLEAR
id_clear = rb_intern("clear");
--
2.14.1