From: Eric Wong Date: 2014-03-15T20:41:35+00:00 Subject: [ruby-core:61519] Re: [REJECT?] xmalloc/xfree: reduce atomic ops w/ thread-locals SASADA Koichi wrote: > (2014/03/15 17:34), Eric Wong wrote: > >> > BTW, > >> > > >>> > > + rb_thread_t *th = ruby_thread_from_native(); > >> > > >> > `th' can be NULL because no Ruby threads can call this code. > > Did you mean: gsub(/no Ruby/, "non-Ruby") ? > > Yes. > > > I should put a FATAL exit there (but not much different than crashing). > > You shouldn't. It should pass. For example, C-method creates another > native threads, and they can use ruby_xmalloc(). This is why this is > not `rb_xmalloc()' but `ruby_xmalloc()'. xmalloc hits FATAL if called from a non-Ruby thread: http://yhbt.net/xmalloc_from_pthread.diff $ ./miniruby -e 'Thread.test_xmalloc 50000000' [FATAL] failed to allocate memory Should we care to support xmalloc/xfree in non-Ruby native threads? I think it's too much work.