<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib, branch 2997-arch</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=2997-arch</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=2997-arch'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2025-03-21T12:37:34Z</updated>
<entry>
<title>Fix crash due to crosss-thread list access.</title>
<updated>2025-03-21T12:37:34Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-21T12:37:34Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1fc3341a624be096bd6a938e6f9c7d42861a3712'/>
<id>urn:sha1:1fc3341a624be096bd6a938e6f9c7d42861a3712</id>
<content type='text'>
I've seen it happen that item points to a different QueueItem after the
lock was unlocked here, which I didn't think was possible.  Backtraces
suggest that when problems happen _queue is being sorted in another
thread, and perhaps this is not allowed (I couldn't find any conclusive
proof in any documentation).

There is also a potential problem with the newly-added zombify() method,
which takes the lock and clears the list.
</content>
</entry>
<entry>
<title>Use make_shared.</title>
<updated>2025-03-21T12:34:41Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-21T12:34:41Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=adfadddbee2ff9222eba69bd976f93af6508ce29'/>
<id>urn:sha1:adfadddbee2ff9222eba69bd976f93af6508ce29</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify conditions.</title>
<updated>2025-03-21T12:34:33Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-21T12:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a9e1bbf790531d2b242ffee601252b785ae5174c'/>
<id>urn:sha1:a9e1bbf790531d2b242ffee601252b785ae5174c</id>
<content type='text'>
Only Type::FULL can have non-null encoded, so I don't think there's any
point in checking for both things.
</content>
</entry>
<entry>
<title>Fix progress reporting.</title>
<updated>2025-03-20T00:25:58Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-20T00:25:58Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=29c84f0827c368432232161554e5ca5408e89bd7'/>
<id>urn:sha1:29c84f0827c368432232161554e5ca5408e89bd7</id>
<content type='text'>
earliest_time will be empty when we're at the end of the film, not the
beginning.
</content>
</entry>
<entry>
<title>White space.</title>
<updated>2025-03-20T00:07:50Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-20T00:07:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e6490d7e293380aa32c2cf097faf08e31a7ea412'/>
<id>urn:sha1:e6490d7e293380aa32c2cf097faf08e31a7ea412</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move remote backoff sleep to before we pop a frame from the queue.</title>
<updated>2025-03-19T23:31:22Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-19T23:31:22Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=cccc313d012d337c85dfb5df70e7960709487eea'/>
<id>urn:sha1:cccc313d012d337c85dfb5df70e7960709487eea</id>
<content type='text'>
Otherwise in the case of failure it can take a while for the frame to
become available again for a functioning thread to encode.
</content>
</entry>
<entry>
<title>Improve reporting of socket errors.</title>
<updated>2025-03-19T23:29:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-19T23:13:15Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3017c64cd6cdfbfea7196909ad0af5d230eaf927'/>
<id>urn:sha1:3017c64cd6cdfbfea7196909ad0af5d230eaf927</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove deprecated/removed use of resolver::query.</title>
<updated>2025-03-19T21:41:31Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-17T13:38:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d069b6b91081d967d6fdbbd74e30a06a5d9b6af0'/>
<id>urn:sha1:d069b6b91081d967d6fdbbd74e30a06a5d9b6af0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add abstraction of io_{context,service} and use it as appropriate.</title>
<updated>2025-03-19T21:41:31Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-17T00:25:02Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=25df8b44586c87ecbe738143b60014cec9b82377'/>
<id>urn:sha1:25df8b44586c87ecbe738143b60014cec9b82377</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make the Socket connect() call a little friendlier.</title>
<updated>2025-03-19T21:41:31Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-17T19:27:47Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9a40fadeb626b67ac08b57ae5b93a735fd3b9db3'/>
<id>urn:sha1:9a40fadeb626b67ac08b57ae5b93a735fd3b9db3</id>
<content type='text'>
This avoids some boilerplate.
</content>
</entry>
</feed>
