Right on, thanks for the info. If I can come up with something I'd be happy to contribute back.
On Friday, February 14, 2014 10:53:47 AM UTC-7, Fedor Indutny wrote: > > 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]<javascript:>> > 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] <javascript:>. > > To post to this group, send email to [email protected]<javascript:>. > > > 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.
