diff options
author | Christoph Cullmann <christoph@cullmann.io> | 2022-04-05 22:46:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-05 23:46:42 +0300 |
commit | 611e48abbbcaea7e59352c277db0ca2c24369eb8 (patch) | |
tree | af45f4ddced1b25c125ce2a440a830c8fe9dcef0 /singleapplication_p.cpp | |
parent | Merge pull request #153 from itay-grudev/lts-only (diff) | |
download | singleapplication-611e48abbbcaea7e59352c277db0ca2c24369eb8.tar.xz |
Provide API for blocking sendMessage (#154)
Diffstat (limited to 'singleapplication_p.cpp')
-rw-r--r-- | singleapplication_p.cpp | 10 |
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 ) |