This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: dlclose() vs fork()


On Mar 22 08:44, Alexey Sokolov wrote:
> Thanks Corinna for the quick fix,
> The user confirmed it's working now with the snapshot.
> 
> 21.03.2017 13:42, Corinna Vinschen пишет:
> > On Mar 21 09:03, Alexey Sokolov wrote:
> > > Hello,
> > > If the same DLL is dlopen()ed several times, dlclose() will actually
> > > unload the DLL only after the same number of calls to dlclose().
> > > 
> > > This works fine in cygwin, until we add fork().
> > > 
> > > It looks like in the child process the counters of inherited DLLs are
> > > set to 1, so the first dlclose() unloads it, causing segfault for
> > > subsequent access to the unloaded code.
> > > https://github.com/znc/znc/issues/1385#issuecomment-288014319 has a
> > > working minimal example of this behavior.
> > 
> > dlopen/dlclose reference counting was broken.  I applied a fix and
> > uploaded new dev snapshots to https://cygwin.com/snapshots/

Thanks for testing and feedback.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]