summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/sqlite3_mutex_held.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/sqlite3_mutex_held.3')
-rw-r--r--static/netbsd/man3/sqlite3_mutex_held.355
1 files changed, 55 insertions, 0 deletions
diff --git a/static/netbsd/man3/sqlite3_mutex_held.3 b/static/netbsd/man3/sqlite3_mutex_held.3
new file mode 100644
index 00000000..9555de7a
--- /dev/null
+++ b/static/netbsd/man3/sqlite3_mutex_held.3
@@ -0,0 +1,55 @@
+.Dd January 24, 2024
+.Dt SQLITE3_MUTEX_HELD 3
+.Os
+.Sh NAME
+.Nm sqlite3_mutex_held ,
+.Nm sqlite3_mutex_notheld
+.Nd mutex verification routines
+.Sh SYNOPSIS
+.In sqlite3.h
+.Ft int
+.Fo sqlite3_mutex_held
+.Fa "sqlite3_mutex*"
+.Fc
+.Ft int
+.Fo sqlite3_mutex_notheld
+.Fa "sqlite3_mutex*"
+.Fc
+.Sh DESCRIPTION
+The sqlite3_mutex_held() and sqlite3_mutex_notheld() routines are intended
+for use inside assert() statements.
+The SQLite core never uses these routines except inside an assert()
+and applications are advised to follow the lead of the core.
+The SQLite core only provides implementations for these routines when
+it is compiled with the SQLITE_DEBUG flag.
+External mutex implementations are only required to provide these routines
+if SQLITE_DEBUG is defined and if NDEBUG is not defined.
+.Pp
+These routines should return true if the mutex in their argument is
+held or not held, respectively, by the calling thread.
+.Pp
+The implementation is not required to provide versions of these routines
+that actually work.
+If the implementation does not provide working versions of these routines,
+it should at least provide stubs that always return true so that one
+does not get spurious assertion failures.
+.Pp
+If the argument to sqlite3_mutex_held() is a NULL pointer then the
+routine should return 1.
+This seems counter-intuitive since clearly the mutex cannot be held
+if it does not exist.
+But the reason the mutex does not exist is because the build is not
+using mutexes.
+And we do not want the assert() containing the call to sqlite3_mutex_held()
+to fail, so a non-zero return is the appropriate thing to do.
+The sqlite3_mutex_notheld() interface should also return 1 when given
+a NULL pointer.
+.Sh IMPLEMENTATION NOTES
+These declarations were extracted from the
+interface documentation at line 8144.
+.Bd -literal
+#ifndef NDEBUG
+SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*);
+SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*);
+#endif
+.Ed