<table><tr><td style="">dfaure added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D29385">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D29385#662439" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D29385#662439</a>, <a href="https://phabricator.kde.org/p/feverfew/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@feverfew</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Ahhh yes correct. Seeming as these jobs are now async (unlike KRun IIRC?), it isn't a problem that <tt style="background: #ebebeb; font-size: 13px;">resultingArguments</tt> makes several blocking calls to the KIOFuse daemon?</p></div>
</blockquote>

<p>Some of KRun was async too ("new KRun" was async, the static methods like runUrl and others were not).<br />
The blocking calls in resultingArguments() don't make things worse for OpenUrlJob than it was for KRun, but of course the fact that the job is async is an opportunity to do everything async.<br />
The problem is that we can't get rid of KRun just yet....</p>

<p>Async on top of sync works -- but still blocks the GUI thread so it's not perfect. Sync on top of async requires awful eventloop hacks which are often the source of nasty bugs.</p>

<p>Solution 1: we write an async version of DesktopExecParser, keeping the existing one for KRun.<br />
Solution 2: we wait until KRun is gone (KF6) to make DesktopExecParser async.</p>

<p>(I'm skipping non-solutions like event loop hacks in KRun or using the fact that nobody seems to really care for the PIDs or "bool success" returned by KRun so we could just make KRun "fire and forget" the underlying jobs and always return success).</p>

<p>Basically this means rewriting DesktopExecParser as a KJob. Are you up for it? ;-)<br />
I can provide guidance, but I really care about FUSE enough myself to test a rewrite if I'd have to write it.<br />
Or I write, you test ;)</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R241 KIO</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D29385">https://phabricator.kde.org/D29385</a></div></div><br /><div><strong>To: </strong>dfaure, ahmadsamir, broulik, meven, kossebau, davidedmundson, nicolasfella, svuorela<br /><strong>Cc: </strong>feverfew, kde-frameworks-devel, LeGast00n, cblack, michaelh, ngraham, bruns<br /></div>