On Thursday 02 May 2002 23:13, aleXXX wrote: > On Thursday 02 May 2002 21:41, Waldo Bastian wrote: > > On Wednesday 01 May 2002 02:51 pm, aleXXX wrote: > > > Hi, > > > > > > since the file ioslave is a very basic element, I think it would be a > > > good idea to keep at least one of them always around, so that it hasn't > > > got to be restarted. The attached patch for > > > kdelibs/kio/kio/scheduler.cpp does this. > > > > No, I don't like this. It would increase the memory usage because every > > application that has used a file-slave once will stick to it till the end > > of times. If you want to do something like this you should do it in the > > slave pool maintained by klauncher: > > > > When a slave isn't used any more by the application it is send back to > > klauncher. When another application needs a slave, klauncher will check > > its pool of slaves first before starting a new one. > > > > Cheers, > > Waldo > > Right, I should look more exactly at the code before sending patches. > > Bye > Alex So how about this one ? RCS file: /home/kde/kdelibs/kinit/klauncher.h,v retrieving revision 1.27 diff -b -u -r1.27 klauncher.h --- klauncher.h 2002/02/28 20:35:29 1.27 +++ klauncher.h 2002/05/02 21:49:26 @@ -46,10 +46,11 @@ IdleSlave(KSocket *socket); bool match( const QString &protocol, const QString &host, bool connected); void connect( const QString &app_socket); - pid_t pid() { return mPid;} + pid_t pid() const { return mPid;} int age(time_t now); void reparseConfiguration(); bool onHold(const KURL &url); + QString protocol() const {return mProtocol;} RCS file: /home/kde/kdelibs/kinit/klauncher.cpp,v retrieving revision 1.76 diff -b -u -r1.76 klauncher.cpp --- klauncher.cpp 2002/03/08 18:56:03 1.76 +++ klauncher.cpp 2002/05/02 21:51:34 @@ -1207,11 +1207,14 @@ void KLauncher::idleTimeout() { + bool keepOneFileSlave=true; time_t now = time(0); IdleSlave *slave; for(slave = mSlaveList.first(); slave; slave = mSlaveList.next()) { - if (slave->age(now) > SLAVE_MAX_IDLE) + if ((slave->protocol()=="file") && (keepOneFileSlave)) + keepOneFileSlave=false; + else if (slave->age(now) > SLAVE_MAX_IDLE) { // killing idle slave delete slave; Bye Alex