https://bugs.openldap.org/show_bug.cgi?id=9278

--- Comment #6 from Howard Chu <[email protected]> ---
(In reply to Xin Li from comment #5)
> (In reply to Howard Chu from comment #4)
> > (In reply to Xin Li from comment #3)
> > > Created attachment 738 [details]

> > Last time I checked, FreeBSD didn't even support robust process shared
> > mutexes.
> > What OS revision is required for this to be supported?
> 
> The support of robust mutexes was added in FreeBSD r300043 (May 17, 2016)
> and is supported by all currently supported FreeBSD releases (11.3, 11.4 and
> 12.1).  The first release with robust mutex support was FreeBSD 11.0-RELEASE
> (October 2016).

Is there a macro we can test, that includes the FreeBSD release number?

> > It seems to me that doing what this test program is doing is a misuse of the
> > API, you should only ever open an environment once in any particular
> > process. Closing it and then opening it again makes no sense.
> 
> Without cleaning up the mutex before unmapping, lmdb will leave the recorded
> mutex behind and the current code will not be able to recover from that
> (unlike in the case the calling process crashed, the code would correctly
> recover from the situation).  Since lmdb is performing similar cleanups for
> semaphores, destroying the mutexes when we are the last user of the database
> seems to be the right thing to do in my opinion.

Yeah, that sounds ok.

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to