aboutsummaryrefslogtreecommitdiff
path: root/singleapplication_p.cpp
diff options
context:
space:
mode:
authorChristoph Cullmann <christoph@cullmann.io>2022-04-05 22:46:42 +0200
committerGitHub <noreply@github.com>2022-04-05 23:46:42 +0300
commit611e48abbbcaea7e59352c277db0ca2c24369eb8 (patch)
treeaf45f4ddced1b25c125ce2a440a830c8fe9dcef0 /singleapplication_p.cpp
parentMerge pull request #153 from itay-grudev/lts-only (diff)
downloadsingleapplication-611e48abbbcaea7e59352c277db0ca2c24369eb8.tar.xz
Provide API for blocking sendMessage (#154)
Diffstat (limited to 'singleapplication_p.cpp')
-rw-r--r--singleapplication_p.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/singleapplication_p.cpp b/singleapplication_p.cpp
index a037f71..2a369bc 100644
--- a/singleapplication_p.cpp
+++ b/singleapplication_p.cpp
@@ -283,7 +283,7 @@ void SingleApplicationPrivate::writeAck( QLocalSocket *sock ) {
sock->putChar('\n');
}
-bool SingleApplicationPrivate::writeConfirmedMessage (int msecs, const QByteArray &msg)
+bool SingleApplicationPrivate::writeConfirmedMessage (int msecs, const QByteArray &msg, SingleApplication::SendMode sendMode)
{
QElapsedTimer time;
time.start();
@@ -301,7 +301,13 @@ bool SingleApplicationPrivate::writeConfirmedMessage (int msecs, const QByteArra
return false;
// Frame 2: The message
- return writeConfirmedFrame( static_cast<int>(msecs - time.elapsed()), msg );
+ const bool result = writeConfirmedFrame( static_cast<int>(msecs - time.elapsed()), msg );
+
+ // Block if needed
+ if (socket && sendMode == SingleApplication::BlockUntilPrimaryExit)
+ socket->waitForDisconnected(-1);
+
+ return result;
}
bool SingleApplicationPrivate::writeConfirmedFrame( int msecs, const QByteArray &msg )