[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Question: KIO Scheduler
From: Waldo Bastian <bastian () kde ! org>
Date: 2000-10-30 5:44:46
[Download RAW message or body]
On Sunday 29 October 2000 19:08, Dawit Alemayehu wrote:
> > Hello,
>
> I am trying to add support for automatic deletion of passwords when the
> applications that cached them are closed by the user. To achieve this I
> put the code that tracks and deletes cached passwords in KIO's scheduler
> since there is one instance of it per app (unlike the slaves and the jobs).
> Hence, when the app exists we are able to correctly deal with the cached
> passwords (remove them as necessary). However, I cannot get this to work
> no matter what I tried and need help. From what I gathered so far it seems
> to me that my problem stems from the fact that the scheduler is a static
> object. I have attached a patch below to show what I have done. Below is
> a brief description of how this deletion is supposed(intended) to work:
>
> 1.) Whenever a unique new password is cached the SlaveBase responsible for
> this stuff sends a message to the application-side of the house
> (SlaveInterface). The message is the key under which the password is
> cached in the kdesud daemon.
>
> 2.) When the SlaveInterface gets this message it emits a signal with this
> key at hand. And since the scheduler is connected to this signal when it
> first created the io-slave, it gets its hand on it.
>
> 3) The SLOT connected to the signal in KIO::Scheduler then store the key in
> a list (QValueList) and registers itself with the kdesu daemon as an owner
> of this key.
>
> So far so good. I was able to get this to work for a while consistently,
> but now for whatever reason it seems not to anymore. I do not get the
> debug statements I should when I test it. But do not worry about this as
> it seems to be something wrong on my end
>
> 4.) When the application is then destroyed, I put a statement that calls
> delCachedAuthKeys in KIO::Scheduler's dtor. The above method determines
> whether or not the cached entries should be deleted or not. This is the
> point of failure. I always get the following FATAL error and konqueror
> aborts in the process of shutting down.
>
> Fatal error: you need to have a KInstance object before
> you do anything that requires it! Examples of this are config
> objects, standard directories or translations.
> zsh: 9755 abort konqueror
>
> If I then remove the method that attempts to call the afformentioned method
> from the destructor, I do not get the above message.
>
> Thus, the question is where is the correct place to put this stuff such
> that when this static object is destroyed or about to be destroyed the
> cached entries, if any, can be cleaned as well...
The scheduler gets deleted after the KApplication gets deleted, there isn't a
whole lot of stuff you are allowed to do at that point.
It's like a house that falls apart and you are running for the door....
Cheers,
Waldo
--
KDE/Linux, you make the choice.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic