<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/sqfs/data_writer, branch v1.0.4</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=v1.0.4</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.0.4'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2020-01-29T16:22:50+00:00</updated>
<entry>
<title>Rename sqfs_data_writer_t back to sqfs_block_processor_t</title>
<updated>2020-01-29T16:22:50+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-01-28T20:23:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=9d5b0c381a7961a14d2a94a6b31a4e25a2543eae'/>
<id>urn:sha1:9d5b0c381a7961a14d2a94a6b31a4e25a2543eae</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: Move fragment deduplication code over to fragment table</title>
<updated>2020-01-26T14:09:06+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-01-26T14:00:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=daa1409632c380f88150be29889714044a843dcc'/>
<id>urn:sha1:daa1409632c380f88150be29889714044a843dcc</id>
<content type='text'>
This removes further clutter from the data writer. Any future efforts
on making fragment by hash lookup faster can focus on that area only
and don't clutter the block processor.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: use fragment table primitive in data writer</title>
<updated>2020-01-24T15:15:55+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-01-24T15:15:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=7fcbe8e10ac062ac449b6d1bbcf22bfd6529d66f'/>
<id>urn:sha1:7fcbe8e10ac062ac449b6d1bbcf22bfd6529d66f</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: remove single use helper functions from data writer</title>
<updated>2020-01-24T15:15:47+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-01-24T10:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=f7c29ffee7fdd61470fd879cfae470534423c0c7'/>
<id>urn:sha1:f7c29ffee7fdd61470fd879cfae470534423c0c7</id>
<content type='text'>
This commit moves the single use helper functions that are called from
worker thread context into the worker thread function.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: remove the payload pointers from sqfs_inode_generic_t</title>
<updated>2020-01-19T19:05:13+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-01-19T19:05:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=4a091b656c0861e3f9335c38af25040cb3ff03c8'/>
<id>urn:sha1:4a091b656c0861e3f9335c38af25040cb3ff03c8</id>
<content type='text'>
There are 3 types of extra payload:
 - Directory index
 - File block sizes
 - Symlink target

This commit removes the type specific pointers and modifies the code
to use the payload area directly. To simplify the file block case and
mitigate alignment issues, the type of the extra field is changed to
sqfs_u32.

For symlink target, the extra field can simply be cast to a character
pointer (it had to be cast anyway for most uses). For block sizes,
probably the most common usecase, it can be used as is. For directory
indices, there is a helper function anyway.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Merge windows and pthread thread pool implementations</title>
<updated>2019-12-13T01:27:17+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-13T01:27:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=2d2772341fa65e3d412e76c6e9d4a8815756c0ec'/>
<id>urn:sha1:2d2772341fa65e3d412e76c6e9d4a8815756c0ec</id>
<content type='text'>
Since they are both structured the same way using condition variables,
they are only a few defines away from removing code duplication.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup data writer</title>
<updated>2019-12-13T01:05:42+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-13T01:00:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=514e9e500abdd8ea91ea3b2fca214587ee24a342'/>
<id>urn:sha1:514e9e500abdd8ea91ea3b2fca214587ee24a342</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Don't kick off the threads until the queue is full</title>
<updated>2019-12-12T15:43:01+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-12T13:23:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=f274c6a208bb329298f83f05d0f9fe8e1a8b5423'/>
<id>urn:sha1:f274c6a208bb329298f83f05d0f9fe8e1a8b5423</id>
<content type='text'>
The idea is as follows: Initially let the user submit blocks until the
queue is filled, then kick of the threads. Every thread will end up
getting a block without any waits until they completely deplete the
queue. Assuming the threads take longer to process the data than it
takes the main thread to do I/O and submit new blocks, the queue should
stay mostly filled with minimal wait times.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix thread pool queue accounting</title>
<updated>2019-12-12T11:48:33+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-12T11:48:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=6d4faedcb53f54253160f1717fac609f922ae0c7'/>
<id>urn:sha1:6d4faedcb53f54253160f1717fac609f922ae0c7</id>
<content type='text'>
 - ONLY manipulate the back log counter in the main thread.
 - Fix the order of operations when submitting blocks.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Replace SetEvent synchronization with condition variables</title>
<updated>2019-12-08T15:48:59+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-08T15:47:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=6d7db2bd7ce39621f27f9f669690ab606ddc1787'/>
<id>urn:sha1:6d7db2bd7ce39621f27f9f669690ab606ddc1787</id>
<content type='text'>
It's cleaner, more stable and works pretty much the same way as the
pthread version. The downside is that the minimum target for the
library is now Windows Vista, or Server 2008. But both are over a
decade old anyway, so this shouldn't be an issue.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
