⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mutex_methods.html

📁 sqlite3源码,适合作为嵌入式(embedded)
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Mutex Methods Object</title><style type="text/css">body {    margin: auto;    font-family: "Verdana" "sans-serif";    padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline {  float:right;  text-align:right;  font-style:italic;  width:240px;  margin:12px;  margin-top:58px;}.toolbar {  font-variant: small-caps;  text-align: center;  line-height: 1.6em;  margin: 0;  padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content    { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se  { background: url(../images/se.png) 100% 100% no-repeat #80a796}.sw  { background: url(../images/sw.png) 0% 100% no-repeat }.ne  { background: url(../images/ne.png) 100% 0% no-repeat }.nw  { background: url(../images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8">  </head><body><div><!-- container div to satisfy validator --><a href="../index.html"><img class="logo" src="../images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td>  <div class="se"><div class="sw"><div class="ne"><div class="nw">  <div class="toolbar">    <a href="../about.html">About</a>    <a href="../sitemap.html">Sitemap</a>    <a href="../docs.html">Documentation</a>    <a href="../download.html">Download</a>    <a href="../copyright.html">License</a>    <a href="../news.html">News</a>    <a href="http://www.sqlite.org/cvstrac/index">Developers</a>    <a href="../support.html">Support</a>  </div></div></div></div></div></td></tr></table>  <a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Mutex Methods Object</h2><blockquote><pre>typedef struct sqlite3_mutex_methods sqlite3_mutex_methods;struct sqlite3_mutex_methods {  int (*xMutexInit)(void);  int (*xMutexEnd)(void);  sqlite3_mutex *(*xMutexAlloc)(int);  void (*xMutexFree)(sqlite3_mutex *);  void (*xMutexEnter)(sqlite3_mutex *);  int (*xMutexTry)(sqlite3_mutex *);  void (*xMutexLeave)(sqlite3_mutex *);  int (*xMutexHeld)(sqlite3_mutex *);  int (*xMutexNotheld)(sqlite3_mutex *);};</pre></blockquote><p><b>Important:</b> This interface is <a href="../c3ref/experimental.html">experimental</a> and is subject to change without notice.</p><p>An instance of this structure defines the low-level routinesused to allocate and use mutexes.</p><p>Usually, the default mutex implementations provided by SQLite aresufficient, however the user has the option of substituting a customimplementation for specialized deployments or systems for which SQLitedoes not provide a suitable implementation. In this case, the usercreates and populates an instance of this structure to passto sqlite3_config() along with the <a href="../c3ref/c_config_getmalloc.html">SQLITE_CONFIG_MUTEX</a> option.Additionally, an instance of this structure can be used as anoutput variable when querying the system for the current muteximplementation, using the <a href="../c3ref/c_config_getmalloc.html">SQLITE_CONFIG_GETMUTEX</a> option.</p><p>The xMutexInit method defined by this structure is invoked aspart of system initialization by the sqlite3_initialize() function. The xMutexInit routine shall be called by SQLite once for eacheffective call to <a href="../c3ref/initialize.html">sqlite3_initialize()</a>.</p><p>The xMutexEnd method defined by this structure is invoked aspart of system shutdown by the sqlite3_shutdown() function. Theimplementation of this method is expected to release all outstandingresources obtained by the mutex methods implementation, especiallythose obtained by the xMutexInit method. The xMutexEnd()interface shall be invoked once for each call to <a href="../c3ref/initialize.html">sqlite3_shutdown()</a>.</p><p>The remaining seven methods defined by this structure (xMutexAlloc,xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld andxMutexNotheld) implement the following interfaces (respectively):</p><p><ul><li>  <a href="../c3ref/mutex_alloc.html">sqlite3_mutex_alloc()</a> </li><li>  <a href="../c3ref/mutex_alloc.html">sqlite3_mutex_free()</a> </li><li>  <a href="../c3ref/mutex_alloc.html">sqlite3_mutex_enter()</a> </li><li>  <a href="../c3ref/mutex_alloc.html">sqlite3_mutex_try()</a> </li><li>  <a href="../c3ref/mutex_alloc.html">sqlite3_mutex_leave()</a> </li><li>  <a href="../c3ref/mutex_held.html">sqlite3_mutex_held()</a> </li><li>  <a href="../c3ref/mutex_held.html">sqlite3_mutex_notheld()</a> </li></ul></p><p>The only difference is that the public sqlite3_XXX functions enumeratedabove silently ignore any invocations that pass a NULL pointer insteadof a valid mutex handle. The implementations of the methods definedby this structure are not required to handle this case, the resultsof passing a NULL pointer instead of a valid mutex handle are undefined(i.e. it is acceptable to provide an implementation that segfaults ifit is passed a NULL pointer).</p><p>See also lists of  <a href="objlist.html">Objects</a>,  <a href="constlist.html">Constants</a>, and  <a href="funclist.html">Functions</a>.</p><hr><small><i>This page last modified 2008/12/09 18:44:04 UTC</i></small></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -