Preventing scripts blocking Amarok - any taker?

Mark Kretschmann kretschmann at kde.org
Thu Dec 16 13:59:10 CET 2010


On Thu, Dec 16, 2010 at 12:22 PM, Myriam Schweingruber <myriam at kde.org> wrote:
> Hi all,
>
> it happens sometimes that a 3rd-party script is running wild and
> blocks Amarok. Mark already started to write a mockup checking if a
> script takes too long that should suggest killing it when it stalls.
> The string already is prepared here:
>
> src/dialogs/ScriptManager.cpp line 609
>
> //MOCKUP method, see API docs
> void
> ScriptManager::showScriptStalledDialog()  // SLOT
> {
>    const QString script = "FIXME";
>
>    const int reply = KMessageBox::questionYesNo( 0, i18n( "The script
> '%1' appears to have stalled.\n\n"
>                                                           "Would you
> like to stop it?", script ),
>                                                           i18n(
> "Script Manager - Amarok" ),
>
> KStandardGuiItem::yes(),
>
> KStandardGuiItem::no(),
>                                                           QString(),
>
> KMessageBox::Dangerous );
>    Q_UNUSED(reply)
> }
>
>
> Mark being very busy at the moment with his day job it would be nice
> if somebody could give this the final push. The string is already in,
> so this would not cause a string change and can still be committed for
> 2.4

My original idea for solving this was the following:

We start a "watchdog" thread that checks regularly if the GUI blocks.
I'm not quite sure how to check this, but it should be possible. And
if we detect that it is blocking in a script, we kill that script.

I dunno if the idea is too simplistic, or if it might work. But the
"watchdog" thread is probably needed, I guess.

-- 
Mark Kretschmann
Amarok Developer, Software Engineer at KO GmbH
Fellow of the Free Software Foundation Europe
http://amarok.kde.org - http://fsfe.org - http://kogmbh.com


More information about the Amarok-devel mailing list