<!DOCTYPE html>
<html>
<head>
</head>
<body>
<dl style="line-height: 1.5; margin-left: 2em">
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Author</dt>
<dd style="margin-left: 8.5em">Kouhei Sutou <kou****@clear*****></dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Date</dt>
<dd style="margin-left: 8.5em">2017-04-12 11:43:18 +0900 (Wed, 12 Apr 2017)</dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">New Revision</dt>
<dd style="margin-left: 8.5em"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad">9e7db4374d2b0bec27d443cdca8d35ceb86d23ad</a></dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Message</dt>
<dd style="margin-left: 8.5em"><pre style="border: 1px solid #aaa; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; padding: 0.5em; width: auto">cache persistent: support opening from multi processes
TODO:
* Support Windows</pre></dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Added files</dt>
<dd style="margin-left: 8.5em">
<ul>
<li><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667">lib/file_lock.c</a></li>
<li><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4">lib/grn_file_lock.h</a></li>
</ul>
</dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Modified files</dt>
<dd style="margin-left: 8.5em">
<ul>
<li><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757">lib/cache.c</a></li>
<li><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cd">lib/sources.am</a></li>
</ul>
</dd>
</dl>
<div class="diff-section" style="clear: both">
<table style="border-collapse: collapse; border: 1px solid #aaa">
<thead>
<tr class="diff-header" style="border: 1px solid #aaa">
<td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre"> Modified: lib/cache.c (+27 -6)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
</td>
</tr>
</thead>
<tbody>
<tr>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L22">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L23">23</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L24">24</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L25">25</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L26">26</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L27">27</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L28">28</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L139">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L140">140</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L141">141</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L142">142</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L143">143</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L144">144</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L145">145</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L146">146</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L147">147</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L148">148</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L149">149</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L150">150</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L152">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L153">153</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L154">154</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L155">155</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L156">156</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L157">157</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L158">158</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L168">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L169">169</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L170">170</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L171">171</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L172">172</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L173">173</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L174">174</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L175">175</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L176">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L177">177</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L178">178</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L179">179</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L180">180</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L181">181</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L182">182</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L183">183</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L193">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L194">194</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L195">195</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L196">196</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L197">197</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L198">198</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L199">199</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L200">200</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L205">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L206">206</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L207">207</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L208">208</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L209">209</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L210">210</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L211">211</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L212">212</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L266">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L267">267</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L268">268</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L269">269</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L270">270</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L271">271</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L272">272</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L273">273</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L276">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L277">277</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L278">278</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L279">279</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L280">280</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L281">281</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L282">282</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757L283">283</a></span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R22">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R23">23</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R24">24</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R25">25</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R26">26</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R27">27</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R28">28</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R29">29</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R140">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R141">141</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R142">142</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R143">143</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R144">144</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R145">145</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R146">146</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R147">147</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R148">148</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R149">149</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R150">150</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R151">151</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R152">152</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R153">153</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R154">154</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R155">155</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R156">156</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R157">157</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R158">158</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R159">159</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R160">160</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R161">161</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R162">162</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R164">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R165">165</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R166">166</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R167">167</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R168">168</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R169">169</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R170">170</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R171">171</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R172">172</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R173">173</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R174">174</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R175">175</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R176">176</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R177">177</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R187">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R188">188</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R189">189</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R190">190</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R191">191</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R192">192</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R193">193</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R194">194</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R195">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R196">196</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R197">197</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R198">198</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R199">199</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R200">200</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R201">201</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R202">202</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R212">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R213">213</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R214">214</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R215">215</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R216">216</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R217">217</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R218">218</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R219">219</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R224">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R225">225</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R226">226</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R227">227</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R228">228</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R229">229</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R230">230</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R231">231</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R285">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R286">286</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R287">287</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R288">288</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R289">289</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R290">290</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R291">291</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R292">292</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R295">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R296">296</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R297">297</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R298">298</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R299">299</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R300">300</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R301">301</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R302">302</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R303">303</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-77dc4b01de73d3c8e529de2216371757R304">304</a></span>
</pre>
</th>
<td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -23,6 +23,7 @@</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #include "grn_pat.h"</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #include "grn_store.h"</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #include "grn_db.h"</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include "grn_file_lock.h"</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #include <sys/stat.h></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -140,11 +141,22 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> grn_cache *cache,</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> const char *base_path)</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock file_lock;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> char *keys_path = NULL;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> char *values_path = NULL;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ char lock_path_buffer[PATH_MAX];</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> char keys_path_buffer[PATH_MAX];</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> char values_path_buffer[PATH_MAX];</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ cache->impl.persistent.timeout = 1000;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (base_path) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_snprintf(lock_path_buffer, PATH_MAX, PATH_MAX, "%s.lock", base_path);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock_init(ctx, &file_lock, lock_path_buffer);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ } else {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock_init(ctx, &file_lock, NULL);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> if (base_path) {</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> struct stat stat_buffer;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -153,6 +165,13 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> keys_path = keys_path_buffer;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> values_path = values_path_buffer;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (!grn_file_lock_acquire(ctx,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ &file_lock,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ cache->impl.persistent.timeout,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ "[cache][persistent][open]")) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ goto exit;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> if (stat(keys_path, &stat_buffer) == 0) {</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> cache->impl.persistent.keys = grn_hash_open(ctx, keys_path);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> if (cache->impl.persistent.keys) {</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -169,7 +188,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> ERRNO_ERR("[cache][persistent] "</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> "failed to remove path for cache keys: <%s>",</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> keys_path);</span>
<span class="diff-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre">- <span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">r</span>et<span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">urn</span>;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ <span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">goto </span>e<span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">xi</span>t;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> if (stat(values_path, &stat_buffer) == 0) {</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -177,7 +196,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> ERRNO_ERR("[cache][persistent] "</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> "failed to remove path for cache values: <%s>",</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> values_path);</span>
<span class="diff-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre">- <span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">r</span>et<span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">urn</span>;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ <span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">goto </span>e<span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">xi</span>t;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -194,7 +213,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> ERR(ctx->rc == GRN_SUCCESS ? GRN_FILE_CORRUPT : ctx->rc,</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> "[cache][persistent] failed to create cache keys storage: <%s>",</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> keys_path ? keys_path : "(memory)");</span>
<span class="diff-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre">- <span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">r</span>et<span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">urn</span>;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ <span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">goto </span>e<span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">xi</span>t;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> cache->impl.persistent.values =</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> grn_ja_create(ctx,</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -206,7 +225,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> ERR(ctx->rc == GRN_SUCCESS ? GRN_FILE_CORRUPT : ctx->rc,</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> "[cache][persistent] failed to create cache values storage: <%s>",</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> values_path ? values_path : "(memory)");</span>
<span class="diff-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre">- <span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">r</span>et<span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">urn</span>;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ <span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">goto </span>e<span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">xi</span>t;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -267,7 +286,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> ERR(ctx->rc == GRN_SUCCESS ? GRN_FILE_CORRUPT : ctx->rc,</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> "[cache][persistent] broken cache keys storage: broken metadata: <%s>",</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> keys_path ? keys_path : "(memory)");</span>
<span class="diff-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre">- <span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">r</span>et<span class="diff-deleted-word" style="background-color: #f8cbcb; color: #000000">urn</span>;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ <span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">goto </span>e<span class="diff-added-word" style="background-color: #a6f3a6; color: #000000">xi</span>t;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> if (added) {</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -277,7 +296,9 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_cache_open_persistent(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-deleted" style="background-color: #ffecec; color: #000000; display: block; white-space: pre">- cache->impl.persistent.timeout = 1000;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+exit :</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock_release(ctx, &file_lock);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock_fin(ctx, &file_lock);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> static grn_cache *</span>
</pre>
</td>
</tr>
</tbody>
</table>
<table style="border-collapse: collapse; border: 1px solid #aaa">
<thead>
<tr class="diff-header" style="border: 1px solid #aaa">
<td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre"> Added: lib/file_lock.c (+83 -0) 100644</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
</td>
</tr>
</thead>
<tbody>
<tr>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667">...</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667">...</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R1">1</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R2">2</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R3">3</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R4">4</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R5">5</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R6">6</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R7">7</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R8">8</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R9">9</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R10">10</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R11">11</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R12">12</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R13">13</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R14">14</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R15">15</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R16">16</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R17">17</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R18">18</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R19">19</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R20">20</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R21">21</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R22">22</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R23">23</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R24">24</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R25">25</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R26">26</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R27">27</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R28">28</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R29">29</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R30">30</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R31">31</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R32">32</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R33">33</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R34">34</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R35">35</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R36">36</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R37">37</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R38">38</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R39">39</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R40">40</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R41">41</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R42">42</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R43">43</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R44">44</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R45">45</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R46">46</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R47">47</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R48">48</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R49">49</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R50">50</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R51">51</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R52">52</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R53">53</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R54">54</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R55">55</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R56">56</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R57">57</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R58">58</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R59">59</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R60">60</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R61">61</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R62">62</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R63">63</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R64">64</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R65">65</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R66">66</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R67">67</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R68">68</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R69">69</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R70">70</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R71">71</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R72">72</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R73">73</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R74">74</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R75">75</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R76">76</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R77">77</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R78">78</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R79">79</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R80">80</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R81">81</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R82">82</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-b3711ca28d065f9e1492e81914f52667R83">83</a></span>
</pre>
</th>
<td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -0,0 +1,83 @@</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+/* -*- c-basic-offset: 2 -*- */</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+/*</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ Copyright(C) 2017 Brazil</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ This library is free software; you can redistribute it and/or</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ modify it under the terms of the GNU Lesser General Public</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ License version 2.1 as published by the Free Software Foundation.</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ This library is distributed in the hope that it will be useful,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ Lesser General Public License for more details.</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ You should have received a copy of the GNU Lesser General Public</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ License along with this library; if not, write to the Free Software</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+*/</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include "grn_file_lock.h"</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include "grn_ctx.h"</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include <sys/stat.h></span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include <sys/types.h></span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include <fcntl.h></span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+void</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+grn_file_lock_init(grn_ctx *ctx,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock *file_lock,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ const char *path)</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+{</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ file_lock->path = path;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ file_lock->fd = -1;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+}</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+grn_bool</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+grn_file_lock_acquire(grn_ctx *ctx,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock *file_lock,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ int timeout,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ const char *error_message_tag)</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+{</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ int i;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ int n_lock_tries = timeout;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (!file_lock->path) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ return GRN_TRUE;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ for (i = 0; i < n_lock_tries; i++) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ file_lock->fd = open(file_lock->path, O_CREAT | O_EXCL);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (file_lock->fd != -1) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ break;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_nanosleep(GRN_LOCK_WAIT_TIME_NANOSECOND);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (file_lock->fd == -1) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ ERR(GRN_NO_LOCKS_AVAILABLE,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ "%s failed to acquire lock: <%s>",</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ error_message_tag, file_lock->path);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ return GRN_FALSE;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ } else {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ return GRN_TRUE;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+}</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+void</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+grn_file_lock_release(grn_ctx *ctx, grn_file_lock *file_lock)</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+{</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (file_lock->fd == -1) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ return;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ close(file_lock->fd);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ unlink(file_lock->path);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+}</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+void</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+grn_file_lock_fin(grn_ctx *ctx, grn_file_lock *file_lock)</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+{</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if (file_lock->fd != -1) {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock_release(ctx, file_lock);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ }</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+}</span>
</pre>
</td>
</tr>
</tbody>
</table>
<table style="border-collapse: collapse; border: 1px solid #aaa">
<thead>
<tr class="diff-header" style="border: 1px solid #aaa">
<td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre"> Added: lib/grn_file_lock.h (+44 -0) 100644</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
</td>
</tr>
</thead>
<tbody>
<tr>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4">...</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4">...</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R1">1</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R2">2</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R3">3</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R4">4</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R5">5</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R6">6</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R7">7</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R8">8</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R9">9</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R10">10</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R11">11</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R12">12</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R13">13</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R14">14</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R15">15</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R16">16</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R17">17</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R18">18</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R19">19</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R20">20</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R21">21</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R22">22</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R23">23</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R24">24</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R25">25</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R26">26</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R27">27</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R28">28</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R29">29</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R30">30</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R31">31</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R32">32</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R33">33</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R34">34</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R35">35</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R36">36</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R37">37</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R38">38</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R39">39</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R40">40</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R41">41</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R42">42</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R43">43</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-87b04623d77d5a286ce017a12a7103e4R44">44</a></span>
</pre>
</th>
<td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -0,0 +1,44 @@</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+/* -*- c-basic-offset: 2 -*- */</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+/*</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ Copyright(C) 2017 Brazil</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ This library is free software; you can redistribute it and/or</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ modify it under the terms of the GNU Lesser General Public</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ License version 2.1 as published by the Free Software Foundation.</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ This library is distributed in the hope that it will be useful,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ Lesser General Public License for more details.</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ You should have received a copy of the GNU Lesser General Public</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ License along with this library; if not, write to the Free Software</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+*/</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#pragma once</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#include "grn.h"</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#ifdef __cplusplus</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+extern "C" {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#endif</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+typedef struct {</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ const char *path;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ int fd;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+} grn_file_lock;</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+void grn_file_lock_init(grn_ctx *ctx,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock *file_lock,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ const char *path);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+grn_bool grn_file_lock_acquire(grn_ctx *ctx,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ grn_file_lock *file_lock,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ int timeout,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ const char *error_message_tag);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+void grn_file_lock_release(grn_ctx *ctx, grn_file_lock *file_lock);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+void grn_file_lock_fin(grn_ctx *ctx, grn_file_lock *file_lock);</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#ifdef __cplusplus</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+}</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+#endif</span>
</pre>
</td>
</tr>
</tbody>
</table>
<table style="border-collapse: collapse; border: 1px solid #aaa">
<thead>
<tr class="diff-header" style="border: 1px solid #aaa">
<td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre"> Modified: lib/sources.am (+2 -0)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
</td>
</tr>
</thead>
<tbody>
<tr>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL29">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL30">30</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL32">32</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL33">33</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL34">34</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdL35">35</a></span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR29">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR30">30</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR32">32</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR33">33</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR34">34</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR35">35</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR36">36</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/9e7db4374d2b0bec27d443cdca8d35ceb86d23ad#diff-4e491bb6e5ae952d3dea202b945e27cdR37">37</a></span>
</pre>
</th>
<td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -30,6 +30,8 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">libgroonga_la_SOURCES =                                \</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">         grn_expr_code.h                                \</span>
<span class="diff-not-changed" style="display: block; white-space: pre">         expr_executor.c                                \</span>
<span class="diff-not-changed" style="display: block; white-space: pre">         grn_expr_executor.h                        \</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+        file_lock.c                                \</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+        grn_file_lock.h                                \</span>
<span class="diff-not-changed" style="display: block; white-space: pre">         geo.c                                        \</span>
<span class="diff-not-changed" style="display: block; white-space: pre">         grn_geo.h                                \</span>
<span class="diff-not-changed" style="display: block; white-space: pre">         grn.h                                        \</span>
</pre>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>