Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions src/dde-session/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,20 +93,20 @@ int main(int argc, char *argv[])
org::freedesktop::systemd1::Manager systemdDBus("org.freedesktop.systemd1", "/org/freedesktop/systemd1", QDBusConnection::sessionBus());
startSystemdUnit(systemdDBus, dmService, "replace");

QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.deepin.dde.Session1", QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForUnregistration);
QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.deepin.dde.Session1", QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForUnregistration, &app);
watcher->connect(watcher, &QDBusServiceWatcher::serviceUnregistered, [&] {
qInfo() << "dde session exit";
startSystemdUnit(systemdDBus, "dde-session-exit-task.service", "replace");
qApp->quit();
});

pid_t curPid = getpid();
QThreadPool::globalInstance()->start([curPid]() {
Fifo *fifo = new Fifo(&app);
QThreadPool::globalInstance()->start([curPid, fifo]() {
qInfo()<<"leader pipe thread id: " << QThread::currentThreadId() << ", pid: " << curPid;
Fifo *fifo = new Fifo;
fifo->OpenWrite();
fifo->Write(QString::number(curPid));
});

// We started the unit, open <dbus> and sleep forever.
return app.exec();
}
Expand All @@ -116,7 +116,7 @@ int main(int argc, char *argv[])
// QProcess no block "/usr/bin/deepin-keyring-whitebox", "--opt-client=waitfifonotify"),BUG-255907
QProcess::startDetached("/usr/bin/deepin-keyring-whitebox", QStringList() << "--opt-client=waitfifonotify");

auto* session = new Session;
auto* session = new Session(&app);
new Session1Adaptor(session);
QDBusConnection::sessionBus().registerService("org.deepin.dde.Session1");
QDBusConnection::sessionBus().registerObject("/org/deepin/dde/Session1", "org.deepin.dde.Session1", session);
Expand All @@ -126,7 +126,7 @@ int main(int argc, char *argv[])
QDBusConnection::sessionBus().registerService("org.deepin.dde.SessionManager1");
QDBusConnection::sessionBus().registerObject("/org/deepin/dde/SessionManager1", "org.deepin.dde.SessionManager1", SessionManager::instance());

auto *wmSwitcher = new WMSwitcher();
auto *wmSwitcher = new WMSwitcher(&app);
new WMSwitcher1Adaptor(wmSwitcher);
QDBusConnection::sessionBus().registerService("org.deepin.dde.WMSwitcher1");
QDBusConnection::sessionBus().registerObject("/org/deepin/dde/WMSwitcher1", wmSwitcher);
Expand All @@ -151,7 +151,7 @@ int main(int argc, char *argv[])

QThreadPool::globalInstance()->start([&session]() {
qInfo()<< "systemd service pipe thread id: " << QThread::currentThreadId();
Fifo *fifo = new Fifo;
Fifo *fifo = new Fifo();
fifo->OpenRead();
qInfo() << "pipe open read finish";
QString CurSessionPid;
Expand All @@ -166,6 +166,7 @@ int main(int argc, char *argv[])
session->setSessionPath();
}
}
fifo->deleteLater();
qInfo() << "pipe read finish, app exit.";
qApp->quit();
});
Expand Down
5 changes: 3 additions & 2 deletions src/utils/fifo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@
#include <errno.h>
#include <QDebug>

Fifo::Fifo()
: m_fd(-1)
Fifo::Fifo(QObject *parent)
: QObject(parent)
, m_fd(-1)
{
m_fifoPath = QString(getenv("HOME")) + "/.cache/dde-session-fifo";
}
Expand Down
5 changes: 3 additions & 2 deletions src/utils/fifo.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@

class Fifo : public QObject
{
Q_OBJECT
public:
Fifo();
~Fifo();
Fifo(QObject *parent = nullptr);
virtual ~Fifo();

int Read(QString &data);
int Write(QString data);
Expand Down