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

List:       kde-core-devel
Subject:    Re: kdesktop problem, some investigation
From:       aleXXX <alexander.neundorf () gmx ! net>
Date:       2001-09-04 16:38:52
[Download RAW message or body]

On Tue 04 Sep 01 10:49, Michael Brade wrote:
> Hi!
>
> On Tuesday 04 September 2001 01:21, aleXXX wrote:
...
> >
> > Now I suspect that it might be possible that immediatly after the job is
> > created (see lines above) it already emits entries(), which in turn
> > causes KDIconView::slotNewItems() to be called. And this might perhaps
> > happen *before* the line "emit started();" is reached. In this case the
> > described bug could appear, since then slotNewItems() would be called
> > *before* slotStarted(). (or is this nonsense ?)
> > So moving the emit started() line directly below the line
> > m_job=KIO::listDir(); might perhaps help.
>
> Well shit, that's exactly what I feared when I wrote this code. But moving
> the emit started() below KIO::listDir() would mean to loose an entries()
> signal in this case, right? 

Why ?

> And moving it above the KIO::listDir() means
> that in the slot that is connected to the signal you can't use
> KDirLister::job() which is bad, even if nobody ever tried this ;), so both
> are no option.
>
> *But*: IMHO it is _not_ possible that some other code (throwing any
> signals) is executed after the return of the call to KIO::listDir() and
> before the end of openURL() or am I wrong here? I don't know the internals
> of Qt that well...
>
> Ciao,
>   Michael

Hmm, at least the dir listing happens in another process, which might already 
have results and send them to the parent process, where something receives 
this data and tries to emit a signal too.

I had a closer look at the sources, down to SimpleJob. When creating a job, 
start() is connected to a 0-timer. This should be executed when 
KDesktop::slotStart() has completed.

Well, I can't say it definitly, can somebody else have a look ?

Bye
Alex

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

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