<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Version 2.9.4 on RsyncUI</title><link>https://rsyncui.netlify.app/tags/version-2.9.4/</link><description>Recent content in Version 2.9.4 on RsyncUI</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 02 May 2026 19:36:12 +0200</lastBuildDate><atom:link href="https://rsyncui.netlify.app/tags/version-2.9.4/index.xml" rel="self" type="application/rss+xml"/><item><title>Version 2.9.4</title><link>https://rsyncui.netlify.app/blog/2026/05/02/version-2.9.4/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://rsyncui.netlify.app/blog/2026/05/02/version-2.9.4/</guid><description>&lt;h3 id="version-294---may-02-2026-not-released"&gt;Version 2.9.4 - May 02, 2026 (not released)&lt;a class="td-heading-self-link" href="#version-294---may-02-2026-not-released" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A cleanup of code in RsyncUI is underway. RsyncUI is stable and has many downloads, but I learned more about concurrency and caching while working on another project that requires it. RsyncUI lacks caching, and most work is done on the main thread. There’s a minor need for concurrency and isolation mechanisms like actors in the code. However, concurrency is used to avoid blocking the UI during reading, writing, and sorting log records. All other read and sorting are executed on the main actor. As well as the real synchronization tasks and updates during synchronization.&lt;/p&gt;</description></item></channel></rss>