<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">On Saturday, 5 June 2021 17:51:18 CEST David Faure wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> On samedi 5 juin 2021 16:29:10 CEST Volker Krause wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Do KIO slaves still need the klauncher/kinit loading mechanism?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> No. My request for developers to test KIO_FORK_SLAVES=1</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> for daily use is so that apps fork kio worker processes directly, without</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> going via klauncher/kinit. BTW it seems to work fine. I wonder if we should</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> toggle that in 5.84, as part of the incremental move to the KF6 world.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > or could</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > that be replaced by json metadata based plugin loading as well?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Err, that's an orthogonal question.</p>
<br /><br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">That was meant regarding <a href="https://invent.kde.org/frameworks/kio/-/blob/master/src/kioslave/kioslave.cpp#L73">https://invent.kde.org/frameworks/kio/-/blob/master/src/kioslave/kioslave.cpp#L73</a>, similar to <a href="https://phabricator.kde.org/T13808">https://phabricator.kde.org/T13808</a>.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">But because SlaveBase is not a QObject we could not do this during KF5 times  easily. It was just an idea :)</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> When not going via klauncher/kinit, the app first launches the kioslave5</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> process, which then loads the .so with the kio worker plugin. As you can</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> see from your process list:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> PREFIX/lib64/libexec/kf5/kioslave5 PREFIX/lib64/plugins/kf5/kio/file.so file</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">>  local:/run/user/1000/kded5ymjnPa.3.slave-socket</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> That .so is determined by slave.cpp using</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">>          QString lib_path = KPluginLoader::findPlugin(_name);</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> which I believe means it finds the plugin by filename, no .protocol file</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> needed and no json metadata needed, right?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > - is the performance benefit of kinit still relevant there?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> We decided it wasn't. For KIO workers it was never measured anyway.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > - for in-process KIO that would be needed anyway</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> That would remove the separate process (kioslave5) from the equation</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> but that's unrelated to plugin loading.</p>
<br /><br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Regards</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Alex</p>
<br /></body>
</html>