[#61424] [REJECT?] xmalloc/xfree: reduce atomic ops w/ thread-locals — Eric Wong <normalperson@...>

I'm unsure about this. I _hate_ the extra branches this adds;

13 messages 2014/03/12

[ruby-core:61519] Re: [REJECT?] xmalloc/xfree: reduce atomic ops w/ thread-locals

From: Eric Wong <normalperson@...>
Date: 2014-03-15 20:41:35 UTC
List: ruby-core #61519
SASADA Koichi <ko1@atdot.net> 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.

In This Thread