Fix secondary thread termination

This resolves the remainder of Bug 1467
pull/2/head
Timothy Pearson 11 years ago
parent f003ff9cd0
commit edf3004ec3

@ -376,16 +376,18 @@ void LockProcess::init(bool child, bool useBlankOnly)
connect(&mSuspendTimer, TQT_SIGNAL(timeout()), TQT_SLOT(suspend()));
#ifdef HAVE_DPMS
if (mDPMSDepend) {
//if the user decided that the screensaver should run independent from
//dpms, we shouldn't check for it, aleXXX
if (KDesktopSettings::dpmsDependent()) {
BOOL on;
CARD16 state;
DPMSInfo(tqt_xdisplay(), &state, &on);
if (on)
{
connect(&mCheckDPMS, TQT_SIGNAL(timeout()), TQT_SLOT(checkDPMSActive()));
// we can save CPU if we stop it as quickly as possible
// but we waste CPU if we check too often -> so take 10s
mCheckDPMS.start(10000);
if (DPMSInfo(tqt_xdisplay(), &state, &on)) {
if (on) {
connect(&mCheckDPMS, TQT_SIGNAL(timeout()), TQT_SLOT(checkDPMSActive()));
// we can save CPU if we stop it as quickly as possible
// but we waste CPU if we check too often -> so take 10s
mCheckDPMS.start(10000);
}
}
}
#endif
@ -729,12 +731,6 @@ void LockProcess::configure()
mAutoLogoutTimerId = startTimer(mAutoLogoutTimeout * 1000); // in milliseconds
}
#ifdef HAVE_DPMS
//if the user decided that the screensaver should run independent from
//dpms, we shouldn't check for it, aleXXX
mDPMSDepend = KDesktopSettings::dpmsDependent();
#endif
mPriority = KDesktopSettings::priority();
if (mPriority < 0) mPriority = 0;
if (mPriority > 19) mPriority = 19;
@ -2702,6 +2698,7 @@ void ControlPipeHandlerObject::run(void) {
if (display_number < 0) {
printf("[kdesktop_lock] Warning: unable to create control socket. Interactive logon modules may not function properly.\n\r");
TQApplication::eventLoop()->exit(-1);
return;
}
@ -2731,6 +2728,7 @@ void ControlPipeHandlerObject::run(void) {
if (!mParent->mPipeOpen) {
printf("[kdesktop_lock] Warning: unable to create control socket '%s'. Interactive logon modules may not function properly.\n\r", fifo_file);
TQApplication::eventLoop()->exit(-1);
return;
}
@ -2760,6 +2758,9 @@ void ControlPipeHandlerObject::run(void) {
}
}
}
TQApplication::eventLoop()->exit(0);
return;
}
#include "lockprocess.moc"

@ -174,7 +174,6 @@ private:
bool mSuspended;
TQTimer mSuspendTimer;
bool mVisibility;
bool mDPMSDepend;
TQTimer mCheckDPMS;
TQValueStack< TQWidget* > mDialogs;
bool mRestoreXF86Lock;

@ -1259,6 +1259,7 @@ void ControlPipeHandlerObject::run(void) {
while (1) {
if ((mKGreeterParent && (mKGreeterParent->closingDown)) || (mSAKDlgParent && (mSAKDlgParent->closingDown))) {
::unlink(mPipeFilename.ascii());
TQApplication::eventLoop()->exit(-1);
return;
}
@ -1297,6 +1298,7 @@ void ControlPipeHandlerObject::run(void) {
if ((file_mode != 600) || (buffer.st_uid != 0) || (buffer.st_gid != 0)) {
::unlink(mPipeFilename.ascii());
printf("[WARNING] Possible security breach! Please check permissions on " FIFO_DIR " (must be 600 and owned by root/root, got %d %d/%d). Not listening for login credentials on remote control socket.\n", file_mode, buffer.st_uid, buffer.st_gid); fflush(stdout);
TQApplication::eventLoop()->exit(-1);
return;
}
}
@ -1327,6 +1329,7 @@ void ControlPipeHandlerObject::run(void) {
}
if ((mKGreeterParent && (mKGreeterParent->closingDown)) || (mSAKDlgParent && (mSAKDlgParent->closingDown))) {
::unlink(mPipeFilename.ascii());
TQApplication::eventLoop()->exit(-1);
return;
}
@ -1338,10 +1341,12 @@ void ControlPipeHandlerObject::run(void) {
}
else {
::unlink(mPipeFilename.ascii());
TQApplication::eventLoop()->exit(-1);
return;
}
}
}
TQApplication::eventLoop()->exit(-1);
}
#include "kgreeter.moc"

Loading…
Cancel
Save