[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Question: KIO Scheduler
From: David Faure <david () mandrakesoft ! com>
Date: 2000-11-04 12:49:59
[Download RAW message or body]
On Monday 30 October 2000 05:44, Waldo Bastian wrote:
> 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....
Yup. Does the new method for cleaning up when kapplication exits
(the one with "Simon" in the debug message :-)
help for that ? Maybe the house is a bit less falling apart at that point ?
--
David FAURE, david@mandrakesoft.com, faure@kde.org
http://www.mandrakesoft.com/~david/, http://www.konqueror.org/
KDE, Making The Future of Computing Available Today
See http://www.kde.org/kde1-and-kde2.html for how to set up KDE 2
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic