[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kfm-devel
Subject:    Re: Dolphin and Baloo
From:       Frank Reininghaus <frank78ac () googlemail ! com>
Date:       2014-02-05 10:18:05
Message-ID: CAFoZWWissLYm5bHbKLfrfgPVGzg7S8kLomcEbFWh+Dkh0aQ_fA () mail ! gmail ! com
[Download RAW message or body]

Hi,

2014-02-04 Frank Reininghaus:
[...]
> (c) Unless I'm overlooking something, it looks to me like
> rolesData(KFileItem) invokes applyChangedBalooRoles(QString), which
> will then finally trigger applyChangedBalooRolesJobFinished(KJob*).
> The latter function then calls rolesData(KFileItem) again. This looks
> like an infinite recursion to me. It won't cause a crash or block the
> GUI because two of the recursive calls are asynchronous, but it will
> make Dolphin use 100% of one CPU core permanently. Or am I missing
> something here?

I thought again about this issue. Maybe the best solution is to simply
drop the call to rolesData from applyChangedBalooRolesJobFinished? If
any non-Baloo roles need to be updated, this will happen anyway
because we receive a signal from KDirWatch either directly or
indirectly (via KFileItemModel's itemsChanged signal) in
KFileItemModelRolesUpdater if anything interesting changes.

So I think that everything should work OK (and without infinite
recursions) if the QHash data is simply initialized to an empty QHash
in applyChangedBalooRolesJobFinished, but I haven't tested it.

Cheers,
Frank
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic