Oh, I see. I was looking at v0.10 branch, sorry. I think this is a
decision we made (or one of us), and not something to change in a near
future :) Unless you have an idea how to fix it, and are willing to
contribute PR ;)

On Fri, Feb 14, 2014 at 9:47 PM, booch <[email protected]> wrote:
> Hi Fedor,
>
> I'm referencing the cleanup from threadpool.c. It's decorated as an
> __attribute__((destructor)) and on master
> (https://github.com/joyent/libuv/blob/master/src/unix/threadpool.c) it's
> line 132.
>
> It's definitely not written to support forking at the moment, so if this is
> a conscious design choice no problem, but I was curious after encountering
> the behavior.
>
> Thanks,
> MY
>
>
> On Thursday, February 13, 2014 6:27:03 AM UTC-7, Fedor Indutny wrote:
>>
>> Heya!
>>
>> Sorry, but I don't think that forking after initializing uv loop is
>> supported. What `cleanup` function are you talking about?
>>
>> On Tue, Feb 11, 2014 at 8:49 PM, booch <[email protected]>
>> wrote:
>> >
>> >
>> > On Monday, February 10, 2014 1:51:20 PM UTC-7, booch wrote:
>> >>
>> >> Hi all,
>> >>
>> >> I'm wondering if anyone knows an easy way around an issue I'm seeing.
>> >>
>> >> I have some code using libuv for its threadpool.c feature.
>> >> Unfortunately
>> >> this code forks. When the child exits we run the destructor code
>> >> theadpool.c:cleanup...since the child inherited most of the parent it
>> >> has an
>> >> allocated threads array, and initialized == 1, but since it's a fork it
>> >> has
>> >> no other started threads. With no other threads the uv_thread_join
>> >> fails and
>> >> the library aborts when unloading.
>> >>
>> >> Has anyone ran into this before and found a workaround? Is there a
>> >> notify_of_fork method that I'm missing?
>> >>
>> >> Thanks,
>> >> MY
>> >
>> >
>> > Update: I worked around this in the code I was refactoring, but am
>> > interested in people's thoughts on this still. Is the shutdown behavior
>> > of
>> > threadpool expected; as in, works as designed and libuv thread pooling
>> > is
>> > incompatible with forked processes. Or is this a bug and a
>> > reset_after_fork
>> > or some other utility necessary?
>> >
>> > Thanks,
>> > MY
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "libuv" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at http://groups.google.com/group/libuv.
>> > For more options, visit https://groups.google.com/groups/opt_out.
>
> --
> You received this message because you are subscribed to the Google Groups
> "libuv" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/libuv.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to