dlclose() vs fork()
Alexey Sokolov
alexey+cygwin@asokolov.org
Wed Mar 22 08:53:00 GMT 2017
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/
>
> I'm just building a 2.8.0-0.2 test release as well.
>
>
> Please test.
>
>
> Thanks,
> Corinna
>
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list