Hallvard Breien Furuseth wrote:
On 05/19/2014 04:05 PM, Venkat Murty wrote:
> Why does close sometime take a long time?
> mdb_env_close (in sync7320902242508427276.so) + 69 [0x112e37d35]
> mdb_env_close0 (in sync7320902242508427276.so) + 248 [0x112e37948]
> close (in libsystem_kernel.dylib) + 10 [0x7fff8bf900c2]
>
> Usually, happens when I have killed the process the last time.
>
> System: Mac OS X
Do you mean when the last existing process using the enviornment
is exiting? If so, that makes sense:
On BSD systems, mdb_env_close() attempts to upgrade the readlock
on the lockfile to a writelock. If that succeeds, it deletes
its semaphores since this is the last process using them.
But if you mean you killed the process, started another and then
close takes a long time, I don't know why.
It seems he's talking specifically about the close(2) syscall taking a long
time. Someone would have to peek inside the MacOSX kernel source code to
answer that question.
--
-- Howard Chu
CTO, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/