Closing a dets
Wed Mar 23 13:43:06 CET 2005
> Is there a way of waiting for a dets to be properly closed after
> dets:close/1 has been called. The problem is that I want to shut down the
> erlang node with an exit status (using halt(ExitStatus)), but wait until
> the dets is properly closed.
You should call dets:sync/1 before calling dets:close/1 if you want to
be sure that data have been written to disk (dets:sync/1 calls
file:sync/1 which calls fsync(3C)). (This may take some time if you
close many Dets tables.)
But I assume what you want is to be sure that no Dets table will need
to be repaired when opened next time. For that it should suffice to
call dets:close/1 without calling dets:sync/1.
Or have you found a counterexample?
Hans Bolinder, Erlang/OTP
More information about the erlang-questions