Files
cpython-source-deps/docs/gsg_txn/C/txnnowait.html
2017-09-04 13:40:25 -05:00

92 lines
3.5 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>No Wait on Blocks</title>
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.62.4" />
<link rel="home" href="index.html" title="Getting Started with Berkeley DB Transaction Processing" />
<link rel="up" href="txnconcurrency.html" title="Chapter 4. Concurrency" />
<link rel="previous" href="readmodifywrite.html" title="Read/Modify/Write" />
<link rel="next" href="reversesplit.html" title="Reverse BTree Splits" />
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">No Wait on Blocks</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="readmodifywrite.html">Prev</a> </td>
<th width="60%" align="center">Chapter 4. Concurrency</th>
<td width="20%" align="right"> <a accesskey="n" href="reversesplit.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a id="txnnowait"></a>No Wait on Blocks</h2>
</div>
</div>
<div></div>
</div>
<p>
Normally when a DB transaction is blocked on a lock request, it
must wait until the requested lock becomes available before its
thread-of-control can proceed. However, it is possible to configure a
transaction handle such that it will report a deadlock rather
than wait for the block to clear.
</p>
<p>
You do this on a transaction by transaction basis by specifying
<span>
<tt class="literal">DB_TXN_NOWAIT</tt>
to the
<tt class="methodname">DB_ENV-&gt;txn_begin()</tt>
method.
</span>
</p>
<p>
For example:
</p>
<pre class="programlisting"> /* Get the transaction */
DB_TXN *txn = NULL;
ret = envp-&gt;txn_begin(envp, NULL, &amp;txn, DB_TXN_NOWAIT);
if (ret != 0) {
envp-&gt;err(envp, ret, "txn_begin failed");
return (EXIT_FAILURE);
}
....
/* Deadlock detection and exception handling omitted for brevity. */</pre>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="readmodifywrite.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="txnconcurrency.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="reversesplit.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Read/Modify/Write </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Reverse BTree Splits</td>
</tr>
</table>
</div>
</body>
</html>