<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/util, branch fixes-1.1.0</title>
<subtitle>A new set of tools and libraries for working with SquashFS images</subtitle>
<id>https://git.infraroot.at/squashfs-tools-ng.git/atom?h=fixes-1.1.0</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=fixes-1.1.0'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2022-12-01T17:46:52+00:00</updated>
<entry>
<title>Fix: update mempool accounting when freeing an object</title>
<updated>2022-12-01T17:46:52+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-10-25T13:58:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=a3b7a75370b218341bce534fa394edca6ac4a1c1'/>
<id>urn:sha1:a3b7a75370b218341bce534fa394edca6ac4a1c1</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>More defensive programming in mem_pool_allocate</title>
<updated>2022-03-11T11:32:50+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-03-10T22:59:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=2a3f02fd36a9152bcafaa05bddebbdb4bd2f41e6'/>
<id>urn:sha1:2a3f02fd36a9152bcafaa05bddebbdb4bd2f41e6</id>
<content type='text'>
Abort and retry in situations that should logically _never_
_ever_ happen.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix warning if __SIZEOF_INT128__ is not defined</title>
<updated>2022-03-10T22:16:53+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-03-10T22:16:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=fbccd0d022b1ffc3f648761406cb53a32e63deae'/>
<id>urn:sha1:fbccd0d022b1ffc3f648761406cb53a32e63deae</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libutil: cleanup alignment trickery in mempool</title>
<updated>2021-06-25T13:12:41+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-06-25T12:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=0880db76afe85391430c547a67bad54b655a66e1'/>
<id>urn:sha1:0880db76afe85391430c547a67bad54b655a66e1</id>
<content type='text'>
 - Store the return value of the page allocation directly into the
   pool variable instead of an intermediate unsigned char pointer.
 - Make the blob[] array the same type as the bitmap, this saves us
   manual alignment trickery.
 - Cleanup the pointer arithmetic, let the compiler do the
   sizeof() multiplication.
 - Use uintptr_t for the manual alignment of the data pointer, so we
   don't run into signdness problems there.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Port the pool allocator to Windows</title>
<updated>2021-03-24T13:05:18+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-24T11:11:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=930eb71b8e2e1cbd4a6e9fd50a5253e44b79c2b1'/>
<id>urn:sha1:930eb71b8e2e1cbd4a6e9fd50a5253e44b79c2b1</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Threadpool: pre-emtively dequeue items after enqueing</title>
<updated>2021-03-22T20:09:54+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-22T19:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=13c804062e9acc7f74850477679265e19704e65a'/>
<id>urn:sha1:13c804062e9acc7f74850477679265e19704e65a</id>
<content type='text'>
When we already hold the mutex, try to pre-emtively dequeue items into
a "safe queue". When actually asked to dequeue, take blocks from there
first and avoid having to enter the critical section if possible.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup the block processor file structure</title>
<updated>2021-03-22T14:26:47+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-22T10:30:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=5aa0f30173ecf3b6538b9136cb4783fc19266288'/>
<id>urn:sha1:5aa0f30173ecf3b6538b9136cb4783fc19266288</id>
<content type='text'>
A cleaner separation between common code, frontend code and backend
code is made.

The "is this byte blob zero" function is moved out to libutil (with
test case and everything) with a more optimized implementation.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Rename thread pool serial implementation data structure</title>
<updated>2021-03-21T16:40:07+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-21T16:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=504cdc0b22406bd3c28b16c69deaaba7be104923'/>
<id>urn:sha1:504cdc0b22406bd3c28b16c69deaaba7be104923</id>
<content type='text'>
Hopeing that coverity can now tell the two appart.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add a thread pool implementation to libutil</title>
<updated>2021-03-21T16:29:18+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-20T15:46:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=a18f724aa3bf57aeed285b5f61eca4a0ba891c21'/>
<id>urn:sha1:a18f724aa3bf57aeed285b5f61eca4a0ba891c21</id>
<content type='text'>
The thread pool enforces ordering of items during dequeue similar
to the already existing implementation in libsqfs. The idea is to
eventually pull this functionality out of the block processor and
turn it into a cleaner, separately tested module.

The thread pool is implemented as an abstract interface, so we can
have multiple implementations around, including the serial fallback
implementation which we can then *always* test, irregardless of the
compile config and run through static analysis as well.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Force 64 bit alignment of blocks managed by the pool allocator</title>
<updated>2021-03-21T16:29:18+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-03-21T16:28:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=977aa1d0d29b5b48b31279d7709a7209001ee309'/>
<id>urn:sha1:977aa1d0d29b5b48b31279d7709a7209001ee309</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
