summaryrefslogtreecommitdiff
path: root/src/organizercore.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-10-24 07:11:08 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-11-06 07:44:54 -0500
commitbff5a22f48b933fe9eba3a15497882ddf2a03990 (patch)
treeec79ff1472107be952b12a8b15dda6350d0fb9a8 /src/organizercore.h
parent8f24f6298f62e36db1c7a624052e70b41c5e7e27 (diff)
spawning an executable now only waits for that particular process
added waitForAllUSVFSProcesses() to OrganizerCore, used when closing MO
Diffstat (limited to 'src/organizercore.h')
-rw-r--r--src/organizercore.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/organizercore.h b/src/organizercore.h
index 3d3c7325..ffdb6830 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -167,6 +167,8 @@ public:
const QString &profile, const QString &forcedCustomOverwrite = "",
bool ignoreCustomOverwrite = false);
+ bool waitForApplication(HANDLE processHandle, LPDWORD exitCode = nullptr);
+ bool waitForAllUSVFSProcessesWithLock();
void loginSuccessfulUpdate(bool necessary);
void loginFailedUpdate(const QString &message);
@@ -221,8 +223,6 @@ public:
DownloadManager *downloadManager();
PluginList *pluginList();
ModList *modList();
- bool waitForApplication(HANDLE processHandle, LPDWORD exitCode = nullptr);
- HANDLE findAndOpenAUSVFSProcess(const std::vector<QString>& hiddenList, DWORD preferedParentPid);
bool onModInstalled(const std::function<void (const QString &)> &func);
bool onAboutToRun(const std::function<bool (const QString &)> &func);
bool onFinishedRun(const std::function<void (const QString &, unsigned int)> &func);
@@ -311,6 +311,13 @@ private:
bool waitForProcessCompletion(
HANDLE handle, LPDWORD exitCode, ILockedWaitingForProcess* uilock);
+ bool waitForAllUSVFSProcesses(ILockedWaitingForProcess* uilock);
+
+ void withLock(std::function<void (ILockedWaitingForProcess*)> f);
+
+ HANDLE findAndOpenAUSVFSProcess(
+ const std::vector<QString>& hiddenList, DWORD preferedParentPid);
+
private slots:
void directory_refreshed();