pmemset_deep_flush() - performs deep flush on the range
#include <libpmemset.h> int pmemset_deep_flush(struct pmemset *set, const void *ptr, size_t size);
The pmemset_deep_flush() function forces any changes in the range [ptr, ptr+size) from the set to be stored durably in the most reliable persistence domain available to software. In particular, on supported platforms, this enables the code not to rely on automatic cache or WPQ (write pending queue) flush on power failure (ADR/eADR).
Since this operation is usually much more expensive than regular persist, it should be used sparingly. Typically, the application should only ever use this function as a precaution against hardware failures, e.g., in code that detects silent data corruption caused by unsafe shutdown.
The pmemset_deep_flush() function returns 0 on success or a negative error code on failure.
The pmemset_deep_flush() can fail with the following errors:
pmem2_get_persist_fn(3), libpmemset(7), libpmem2(7), and https://pmem.io
The contents of this web site and the associated GitHub repositories are BSD-licensed open source.