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.