Skip to content

Commit d954802

Browse files
committed
Add MessageContext message discarding
Allow exception teardown paths to discard pending output messages without asserting that they were sent.
1 parent be5a2bb commit d954802

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

Framework/Core/include/Framework/MessageContext.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,11 @@ class MessageContext
466466
/// discarded.
467467
void clear();
468468

469+
/// Discard pending output messages without asserting that they were sent. This
470+
/// is intended for exception teardown paths where normal post-processing will
471+
/// not run.
472+
void discard();
473+
469474
FairMQDeviceProxy& proxy()
470475
{
471476
return mProxy;

Framework/Core/src/MessageContext.cxx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,13 @@ void MessageContext::clear()
107107
mMessages.clear();
108108
}
109109

110+
void MessageContext::discard()
111+
{
112+
mDidDispatch = false;
113+
mScheduledMessages.clear();
114+
mMessages.clear();
115+
}
116+
110117
int64_t MessageContext::addToCache(std::unique_ptr<fair::mq::Message>& toCache)
111118
{
112119
auto&& cached = toCache->GetTransport()->CreateMessage();

0 commit comments

Comments
 (0)