<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/mwindow.c, branch cmn/remove-single-entry</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>mwindow: free unused windows if we fail to mmap</title>
<updated>2016-03-09T10:16:16+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2016-03-09T10:16:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=d50fd57174f98b7786a5d2ae13df5d98b07e81ee'/>
<id>d50fd57174f98b7786a5d2ae13df5d98b07e81ee</id>
<content type='text'>
The first time may be due to memory fragmentation or just bad luck on a
32-bit system. When we hit the mmap error for the first time, free up
the unused windows and try again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The first time may be due to memory fragmentation or just bad luck on a
32-bit system. When we hit the mmap error for the first time, free up
the unused windows and try again.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove extra semicolon outside of a function</title>
<updated>2015-02-15T20:07:05+00:00</updated>
<author>
<name>Stefan Widgren</name>
<email>stefan.widgren@gmail.com</email>
</author>
<published>2015-02-15T20:07:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=c8e02b8776875e6372fc5eba8fc61c51f14f3392'/>
<id>c8e02b8776875e6372fc5eba8fc61c51f14f3392</id>
<content type='text'>
Without this change, compiling with gcc and pedantic generates warning:
ISO C does not allow extra ‘;’ outside of a function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without this change, compiling with gcc and pedantic generates warning:
ISO C does not allow extra ‘;’ outside of a function.
</pre>
</div>
</content>
</entry>
<entry>
<title>mwindow: clean up pack map at shutdown</title>
<updated>2014-10-27T02:27:56+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2014-10-25T23:53:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=8c8ca7309b5b1f81d706226bd9f9ed6e3346e63a'/>
<id>8c8ca7309b5b1f81d706226bd9f9ed6e3346e63a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>pack: clean up error returns</title>
<updated>2014-06-25T19:35:58+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-06-25T19:35:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=c19b1c0442b52e07f1c9f48b65ef0b3823eaa526'/>
<id>c19b1c0442b52e07f1c9f48b65ef0b3823eaa526</id>
<content type='text'>
Set a message when we fail to lock.

Also make the put function void, since it's called from free, which
cannot report errors. The only errors we can experience here are
internal state corruption, so we assert that we are trying to put a
pack which we have previously got.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set a message when we fail to lock.

Also make the put function void, since it's called from free, which
cannot report errors. The only errors we can experience here are
internal state corruption, so we assert that we are trying to put a
pack which we have previously got.
</pre>
</div>
</content>
</entry>
<entry>
<title>pack: free the new pack struct if we fail to insert</title>
<updated>2014-06-25T19:20:39+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-06-25T19:20:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=5e0f47c3753c5ddd206ab3af6d2a231ad3da39c4'/>
<id>5e0f47c3753c5ddd206ab3af6d2a231ad3da39c4</id>
<content type='text'>
If we fail to insert the packfile in the map, make sure to free it.

This makes the free function only attempt to remove its mwindows from
the global list if we have opened the packfile to avoid accessing the
list unlocked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we fail to insert the packfile in the map, make sure to free it.

This makes the free function only attempt to remove its mwindows from
the global list if we have opened the packfile to avoid accessing the
list unlocked.
</pre>
</div>
</content>
</entry>
<entry>
<title>Share packs across repository instances</title>
<updated>2014-06-23T19:50:36+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-06-18T15:13:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=b3b66c57930358467395fc3a5bca87edefd25cf4'/>
<id>b3b66c57930358467395fc3a5bca87edefd25cf4</id>
<content type='text'>
Opening the same repository multiple times will currently open the same
file multiple times, as well as map the same region of the file multiple
times. This is not necessary, as the packfile data is immutable.

Instead of opening and closing packfiles directly, introduce an
indirection and allocate packfiles globally. This does mean locking on
each packfile open, but we already use this lock for the global mwindow
list so it doesn't introduce a new contention point.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Opening the same repository multiple times will currently open the same
file multiple times, as well as map the same region of the file multiple
times. This is not necessary, as the packfile data is immutable.

Instead of opening and closing packfiles directly, introduce an
indirection and allocate packfiles globally. This does mean locking on
each packfile open, but we already use this lock for the global mwindow
list so it doesn't introduce a new contention point.
</pre>
</div>
</content>
</entry>
<entry>
<title>Further threading fixes</title>
<updated>2013-04-22T14:52:07+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-04-15T07:09:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=536078688549ac3d50483eecdec5a8169d921927'/>
<id>536078688549ac3d50483eecdec5a8169d921927</id>
<content type='text'>
This builds on the earlier thread safety work to make it so that
setting the odb, index, refdb, or config for a repository is done
in a threadsafe manner with minimized locking time.  This is done
by adding a lock to the repository object and using it to guard
the assignment of the above listed pointers.  The lock is only
held to assign the pointer value.

This also contains some minor fixes to the other work with pack
files to reduce the time that locks are being held to and fix an
apparently memory leak.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This builds on the earlier thread safety work to make it so that
setting the odb, index, refdb, or config for a repository is done
in a threadsafe manner with minimized locking time.  This is done
by adding a lock to the repository object and using it to guard
the assignment of the above listed pointers.  The lock is only
held to assign the pointer value.

This also contains some minor fixes to the other work with pack
files to reduce the time that locks are being held to and fix an
apparently memory leak.
</pre>
</div>
</content>
</entry>
<entry>
<title>Several warnings detected by static code analyzer fixed</title>
<updated>2013-03-17T23:30:26+00:00</updated>
<author>
<name>Arkadiy Shapkin</name>
<email>ashapkin@artec-group.com</email>
</author>
<published>2013-03-17T00:46:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=10c06114cbb1c384b7de3cca6d6601ee750f5178'/>
<id>10c06114cbb1c384b7de3cca6d6601ee750f5178</id>
<content type='text'>
Implicit type conversion argument of function to size_t type
Suspicious sequence of types castings: size_t -&gt; int -&gt; size_t
Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'
Unsigned type is never &lt; 0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implicit type conversion argument of function to size_t type
Suspicious sequence of types castings: size_t -&gt; int -&gt; size_t
Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'
Unsigned type is never &lt; 0
</pre>
</div>
</content>
</entry>
<entry>
<title>Global options setter</title>
<updated>2013-01-23T01:58:58+00:00</updated>
<author>
<name>Vicent Marti</name>
<email>tanoku@gmail.com</email>
</author>
<published>2013-01-23T01:58:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=59853eff99f8e849d3223bb7154e263fa05a88ae'/>
<id>59853eff99f8e849d3223bb7154e263fa05a88ae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>update copyrights</title>
<updated>2013-01-08T23:31:27+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2013-01-08T23:07:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=359fc2d241ac407bdf9bf0d28715705f01ca6360'/>
<id>359fc2d241ac407bdf9bf0d28715705f01ca6360</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
