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