Skip to content

Commit 85cdd86

Browse files
Updated Signal handling
1 parent 985ce6e commit 85cdd86

7 files changed

Lines changed: 94 additions & 75 deletions

File tree

Implementation/Core/amc_statesignal.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ namespace AMC {
138138
}
139139

140140

141-
CStateSignalSlot::CStateSignalSlot(const std::string& sInstanceName, const std::string& sName, const std::list<CStateSignalParameter>& Parameters, const std::list<CStateSignalParameter>& Results, uint32_t nSignalDefaultReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup)
141+
CStateSignalSlot::CStateSignalSlot(const std::string& sInstanceName, const std::string& sName, const std::vector<CStateSignalParameter>& Parameters, const std::vector<CStateSignalParameter>& Results, uint32_t nSignalDefaultReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup)
142142
: m_sInstanceName (sInstanceName),
143143
m_sName (sName),
144144
m_ParameterDefinitions(Parameters),
@@ -297,7 +297,7 @@ namespace AMC {
297297

298298
}
299299

300-
bool CStateSignalSlot::addNewInQueueSignalInternal(const std::string& sSignalUUID, const std::string& sParameterData, uint32_t nReactionTimeoutInMS, uint64_t nTimeStamp)
300+
PStateSignalMessage CStateSignalSlot::addNewInQueueSignalInternal(const std::string& sSignalUUID, const std::string& sParameterData, uint32_t nReactionTimeoutInMS, uint64_t nTimeStamp)
301301
{
302302
std::lock_guard<std::mutex> lockGuard(m_Mutex);
303303

@@ -322,7 +322,7 @@ namespace AMC {
322322

323323
pMessage->setParameterDataJSON(sParameterData);
324324

325-
return true;
325+
return pMessage;
326326
}
327327

328328
bool CStateSignalSlot::changeSignalPhaseToInProcessInternal(const std::string& sSignalUUID, uint64_t nTimeStamp)

Implementation/Core/amc_statesignal.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ namespace AMC {
113113
std::string m_sInstanceName;
114114
std::string m_sName;
115115

116-
std::list <CStateSignalParameter> m_ParameterDefinitions;
117-
std::list <CStateSignalParameter> m_ResultDefinitions;
116+
std::vector <CStateSignalParameter> m_ParameterDefinitions;
117+
std::vector <CStateSignalParameter> m_ResultDefinitions;
118118

119119
uint32_t m_nSignalDefaultReactionTimeOutInMS;
120120
uint32_t m_nSignalQueueSize;
@@ -155,7 +155,7 @@ namespace AMC {
155155

156156
public:
157157

158-
CStateSignalSlot(const std::string & sInstanceName, const std::string& sName, const std::list<CStateSignalParameter>& Parameters, const std::list<CStateSignalParameter>& Results, uint32_t nSignalDefaultReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup);
158+
CStateSignalSlot(const std::string & sInstanceName, const std::string& sName, const std::vector<CStateSignalParameter>& Parameters, const std::vector<CStateSignalParameter>& Results, uint32_t nSignalDefaultReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup);
159159
virtual ~CStateSignalSlot();
160160

161161
std::string getNameInternal() const;
@@ -165,7 +165,7 @@ namespace AMC {
165165
size_t clearQueueInternal(std::vector<std::string>& clearedUUIDs, uint64_t nTimeStamp);
166166
bool eraseMessage(const std::string& sUUID);
167167

168-
bool addNewInQueueSignalInternal(const std::string& sSignalUUID, const std::string& sParameterData, uint32_t nReactionTimeoutInMS, uint64_t nTimeStamp);
168+
PStateSignalMessage addNewInQueueSignalInternal(const std::string& sSignalUUID, const std::string& sParameterData, uint32_t nReactionTimeoutInMS, uint64_t nTimeStamp);
169169
bool changeSignalPhaseToHandledInternal(const std::string& sSignalUUID, const std::string& sResultData, uint64_t nTimeStamp);
170170
bool changeSignalPhaseToInFailedInternal(const std::string& sSignalUUID, const std::string& sResultData, const std::string& sErrorMessage, uint64_t nTimeStamp);
171171
bool changeSignalPhaseToInProcessInternal(const std::string& sSignalUUID, uint64_t nTimeStamp);

Implementation/Core/amc_statesignalhandler.cpp

Lines changed: 64 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace AMC {
4949
{
5050
}
5151

52-
void CStateSignalHandler::addSignalDefinition(const std::string& sInstanceName, const std::string& sSignalName, const std::list<CStateSignalParameter>& Parameters, const std::list<CStateSignalParameter>& Results, uint32_t nSignalReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup)
52+
void CStateSignalHandler::addSignalDefinition(const std::string& sInstanceName, const std::string& sSignalName, const std::vector<CStateSignalParameter>& Parameters, const std::vector<CStateSignalParameter>& Results, uint32_t nSignalReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup)
5353
{
5454
std::lock_guard<std::mutex> lockGuard(m_SignalMapMutex);
5555

@@ -61,7 +61,7 @@ namespace AMC {
6161
throw ELibMCCustomException(LIBMC_ERROR_DUPLICATESIGNAL, sInstanceName + "/" + sSignalName);
6262

6363
auto pSignal = std::make_shared<CStateSignalSlot>(sInstanceName, sSignalName, Parameters, Results, nSignalReactionTimeOutInMS, nSignalQueueSize, pSignalInformationGroup);
64-
m_SignalMap.insert(std::make_pair(std::make_pair (sInstanceName, sSignalName), pSignal));
64+
m_SignalMap.emplace(std::make_pair (sInstanceName, sSignalName), pSignal);
6565
}
6666

6767
bool CStateSignalHandler::addNewInQueueSignal(const std::string& sInstanceName, const std::string& sSignalName, const std::string& sSignalUUID, const std::string& sParameterData, uint32_t nResponseTimeOutInMS, uint64_t nTimestamp)
@@ -85,9 +85,9 @@ namespace AMC {
8585
if (iUUIDIter != m_SignalUUIDLookupMap.end())
8686
throw ELibMCCustomException(LIBMC_ERROR_SIGNALALREADYTRIGGERED, sNormalizedUUID);
8787

88-
89-
if (pSlot->addNewInQueueSignalInternal (sNormalizedUUID, sParameterData, nResponseTimeOutInMS, nTimestamp)) {
90-
m_SignalUUIDLookupMap.insert(std::make_pair(sNormalizedUUID, pSlot));
88+
auto pMessage = pSlot->addNewInQueueSignalInternal(sNormalizedUUID, sParameterData, nResponseTimeOutInMS, nTimestamp);
89+
if (pMessage.get () != nullptr) {
90+
m_SignalUUIDLookupMap.emplace (sNormalizedUUID, pSlot);
9191
return true;
9292
}
9393

@@ -114,24 +114,26 @@ namespace AMC {
114114
for (auto it = m_SignalMap.begin(); it != m_SignalMap.end(); it++) {
115115
// Check if the first element of the key matches
116116
if (it->first.first == sInstanceName) {
117-
slotList.push_back(it->second);
117+
slotList.push_back(it->second);
118118
}
119119
}
120-
}
121120

122-
std::vector<std::string> clearedUUIDs;
123-
for (auto pSlot : slotList) {
124-
pSlot->clearQueueInternal(clearedUUIDs, nTimestamp);
125-
}
126121

127-
if (!clearedUUIDs.empty ())
128-
{
129-
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
122+
std::vector<std::string> clearedUUIDs;
123+
for (auto pSlot : slotList) {
124+
pSlot->clearQueueInternal(clearedUUIDs, nTimestamp);
130125

131-
for (auto& sUUID : clearedUUIDs)
132-
m_SignalUUIDLookupMap.erase(sUUID);
133-
}
134126

127+
if (!clearedUUIDs.empty())
128+
{
129+
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
130+
131+
for (auto& sUUID : clearedUUIDs)
132+
m_SignalUUIDLookupMap.erase(sUUID);
133+
}
134+
135+
}
136+
}
135137
}
136138

137139
void CStateSignalHandler::clearUnhandledSignalsOfType(const std::string& sInstanceName, const std::string& sSignalTypeName, uint64_t nTimestamp)
@@ -203,15 +205,19 @@ namespace AMC {
203205

204206
void CStateSignalHandler::changeSignalPhaseToHandled(const std::string& sSignalUUID, const std::string& sResultData, uint64_t nTimestamp)
205207
{
206-
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
207-
208208
std::string sNormalizedUUID = AMCCommon::CUtils::normalizeUUIDString(sSignalUUID);
209209

210-
auto iter = m_SignalUUIDLookupMap.find(sNormalizedUUID);
211-
if (iter == m_SignalUUIDLookupMap.end())
212-
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while changing phase to handled (" + sNormalizedUUID + ")");
210+
AMC::PStateSignalSlot pSlot;
211+
{
212+
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
213+
214+
auto iter = m_SignalUUIDLookupMap.find(sNormalizedUUID);
215+
if (iter == m_SignalUUIDLookupMap.end())
216+
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while changing phase to handled (" + sNormalizedUUID + ")");
213217

214-
iter->second->changeSignalPhaseToHandledInternal(sNormalizedUUID, sResultData, nTimestamp);
218+
pSlot = iter->second;
219+
}
220+
pSlot->changeSignalPhaseToHandledInternal(sNormalizedUUID, sResultData, nTimestamp);
215221
}
216222

217223
void CStateSignalHandler::changeSignalPhaseToInProcess(const std::string& sSignalUUID, uint64_t nTimestamp)
@@ -229,28 +235,39 @@ namespace AMC {
229235

230236
void CStateSignalHandler::changeSignalPhaseToFailed(const std::string& sSignalUUID, const std::string& sResultData, const std::string& sErrorMessage, uint64_t nTimestamp)
231237
{
232-
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
233-
234238
std::string sNormalizedUUID = AMCCommon::CUtils::normalizeUUIDString(sSignalUUID);
235239

236-
auto iter = m_SignalUUIDLookupMap.find(sNormalizedUUID);
237-
if (iter == m_SignalUUIDLookupMap.end())
238-
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while changing phase to failed (" + sNormalizedUUID + ")");
240+
PStateSignalSlot pSlot;
241+
{
242+
243+
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
244+
auto iter = m_SignalUUIDLookupMap.find(sNormalizedUUID);
245+
if (iter == m_SignalUUIDLookupMap.end())
246+
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while changing phase to failed (" + sNormalizedUUID + ")");
239247

240-
iter->second->changeSignalPhaseToInFailedInternal(sNormalizedUUID, sResultData, sErrorMessage, nTimestamp);
248+
pSlot = iter->second;
249+
}
250+
251+
pSlot->changeSignalPhaseToInFailedInternal(sNormalizedUUID, sResultData, sErrorMessage, nTimestamp);
241252
}
242253

243254
AMC::eAMCSignalPhase CStateSignalHandler::getSignalPhase(const std::string& sSignalUUID)
244255
{
245-
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
246256

247257
std::string sNormalizedUUID = AMCCommon::CUtils::normalizeUUIDString(sSignalUUID);
248258

249-
auto iter = m_SignalUUIDLookupMap.find(sNormalizedUUID);
250-
if (iter == m_SignalUUIDLookupMap.end())
251-
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while getting signal phase (" + sNormalizedUUID + ")");
259+
PStateSignalSlot pSlot;
260+
{
261+
std::lock_guard<std::mutex> lockGuard(m_SignalUUIDMapMutex);
262+
263+
auto iter = m_SignalUUIDLookupMap.find(sNormalizedUUID);
264+
if (iter == m_SignalUUIDLookupMap.end())
265+
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while getting signal phase (" + sNormalizedUUID + ")");
252266

253-
return iter->second->getSignalPhaseInternal (sNormalizedUUID);
267+
pSlot = iter->second;
268+
}
269+
270+
return pSlot->getSignalPhaseInternal (sNormalizedUUID);
254271
}
255272

256273
std::string CStateSignalHandler::peekSignalMessageFromQueue(const std::string& sInstanceName, const std::string& sSignalName, bool bCheckForTimeouts, uint64_t nGlobalTimestamp)
@@ -275,7 +292,7 @@ namespace AMC {
275292

276293
void CStateSignalHandler::checkForReactionTimeouts(uint64_t nGlobalTimestamp)
277294
{
278-
std::list<AMC::PStateSignalSlot> slots;
295+
std::vector<AMC::PStateSignalSlot> slots;
279296
{
280297
std::lock_guard<std::mutex> lockGuard(m_SignalMapMutex);
281298
for (auto iIter : m_SignalMap)
@@ -353,11 +370,10 @@ namespace AMC {
353370

354371
pSlot = iter->second;
355372

356-
357-
return pSlot->getReactionTimeoutInternal(sNormalizedUUID);
358-
359373
}
360374

375+
return pSlot->getReactionTimeoutInternal(sNormalizedUUID);
376+
361377
}
362378

363379
std::string CStateSignalHandler::getResultDataJSON(const std::string& sSignalUUID)
@@ -373,11 +389,10 @@ namespace AMC {
373389
throw ELibMCCustomException(LIBMC_ERROR_SIGNALNOTFOUND, "signal not found while getting result data JSON (" + sNormalizedUUID + ")");
374390

375391
pSlot = iter->second;
376-
377-
378-
return pSlot->getResultDataJSONInternal(sNormalizedUUID);
379392
}
380393

394+
395+
return pSlot->getResultDataJSONInternal(sNormalizedUUID);
381396
}
382397

383398
bool CStateSignalHandler::findSignalPropertiesByUUID(const std::string& sSignalUUID, std::string& sInstanceName, std::string& sSignalName, std::string& sParameterData)
@@ -393,18 +408,17 @@ namespace AMC {
393408
pSlot = iter->second;
394409
}
395410

411+
}
396412

413+
if (pSlot.get() != nullptr) {
414+
sInstanceName = pSlot->getInstanceNameInternal();
415+
sSignalName = pSlot->getNameInternal();
416+
sParameterData = pSlot->getParameterDataJSONInternal(sNormalizedUUID);
417+
return true;
418+
}
397419

398-
if (pSlot.get() != nullptr) {
399-
sInstanceName = pSlot->getInstanceNameInternal();
400-
sSignalName = pSlot->getNameInternal();
401-
sParameterData = pSlot->getParameterDataJSONInternal(sNormalizedUUID);
402-
return true;
403-
}
404-
405-
return false;
420+
return false;
406421

407-
}
408422

409423
}
410424

Implementation/Core/amc_statesignalhandler.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929
*/
3030

3131

32-
#ifndef __AMC_STATESIGNALHANDLER
33-
#define __AMC_STATESIGNALHANDLER
32+
#ifndef AMC_STATESIGNALHANDLER
33+
#define AMC_STATESIGNALHANDLER
3434

3535
#include <memory>
3636
#include <string>
@@ -49,7 +49,7 @@ namespace AMC {
4949
class CStateSignalHandler;
5050
typedef std::shared_ptr<CStateSignalHandler> PStateSignalHandler;
5151

52-
// Do not include StateSignal.hpp anywhere for threadsafety!
52+
// Do not include StateSignal.hpp outside of amc_statesignalhandler.cpp for threadsafety!
5353
class CStateSignalSlot;
5454
typedef std::shared_ptr<CStateSignalSlot> PStateSignalSlot;
5555

@@ -66,9 +66,9 @@ namespace AMC {
6666
public:
6767

6868
CStateSignalHandler();
69-
virtual ~CStateSignalHandler();
69+
virtual ~CStateSignalHandler() noexcept;
7070

71-
void addSignalDefinition(const std::string & sInstanceName, const std::string & sSignalName, const std::list<CStateSignalParameter> & Parameters, const std::list<CStateSignalParameter> & Results, uint32_t nSignalReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup);
71+
void addSignalDefinition(const std::string & sInstanceName, const std::string & sSignalName, const std::vector<CStateSignalParameter> & Parameters, const std::vector<CStateSignalParameter> & Results, uint32_t nSignalReactionTimeOutInMS, uint32_t nSignalQueueSize, PParameterGroup pSignalInformationGroup);
7272

7373
void clearUnhandledSignals(const std::string& sInstanceName, uint64_t nTimestamp);
7474

@@ -116,5 +116,5 @@ namespace AMC {
116116
}
117117

118118

119-
#endif //__AMC_STATESIGNALHANDLER
119+
#endif //AMC_STATESIGNALHANDLER
120120

Implementation/LibMC/libmc_mccontext.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -468,8 +468,8 @@ AMC::PStateMachineInstance CMCContext::addMachineInstance(const pugi::xml_node&
468468
if (signalNameAttrib.empty())
469469
throw ELibMCCustomException(LIBMC_ERROR_MISSINGSIGNALNAME, "statemachine " + sName);
470470

471-
std::list<CStateSignalParameter> SignalParameters;
472-
std::list<CStateSignalParameter> SignalResults;
471+
std::vector<CStateSignalParameter> SignalParameters;
472+
std::vector<CStateSignalParameter> SignalResults;
473473
uint32_t nSignalReactionTimeOut = 0;
474474
uint32_t nSignalQueueSize = 0;
475475

@@ -614,7 +614,7 @@ AMC::PStateMachineInstance CMCContext::addMachineInstance(const pugi::xml_node&
614614
}
615615

616616

617-
void CMCContext::readSignalParameters(const std::string& sSignalName, const pugi::xml_node& xmlNode, std::list<AMC::CStateSignalParameter>& Parameters, std::list<AMC::CStateSignalParameter>& Results, uint32_t & nSignalReactionTimeOut, uint32_t& nSignalQueueSize)
617+
void CMCContext::readSignalParameters(const std::string& sSignalName, const pugi::xml_node& xmlNode, std::vector<AMC::CStateSignalParameter>& Parameters, std::vector<AMC::CStateSignalParameter>& Results, uint32_t & nSignalReactionTimeOut, uint32_t& nSignalQueueSize)
618618
{
619619

620620
auto reactionTimeOutAttrib = xmlNode.attribute("reactiontimeout");

Implementation/LibMC/libmc_mccontext.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ class CMCContext : public virtual IMCContext, public virtual CBase {
115115
void loadAccessControl(const pugi::xml_node& xmlNode);
116116
void loadAlertDefinitions(const pugi::xml_node& xmlNode);
117117

118-
void readSignalParameters(const std::string& sSignalName, const pugi::xml_node& xmlNode, std::list<AMC::CStateSignalParameter>& Parameters, std::list<AMC::CStateSignalParameter>& Results, uint32_t& nSignalReactionTimeOut, uint32_t& nSignalQueueSize);
118+
void readSignalParameters(const std::string& sSignalName, const pugi::xml_node& xmlNode, std::vector<AMC::CStateSignalParameter>& Parameters, std::vector<AMC::CStateSignalParameter>& Results, uint32_t& nSignalReactionTimeOut, uint32_t& nSignalQueueSize);
119119

120120

121121
protected:

Implementation/UnitTest/amc_unittests_signalslot.hpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ class CUnitTestGroup_SignalSlot : public CUnitTestGroup {
8181
private:
8282

8383
void test_CreateSignalSlotBasic() {
84-
std::list<AMC::CStateSignalParameter> params;
85-
std::list<AMC::CStateSignalParameter> results;
84+
std::vector<AMC::CStateSignalParameter> params;
85+
std::vector<AMC::CStateSignalParameter> results;
8686
params.emplace_back("p1", "string", true);
8787
results.emplace_back("r1", "int", true);
8888

@@ -102,7 +102,7 @@ class CUnitTestGroup_SignalSlot : public CUnitTestGroup {
102102

103103
chrono.sleepMicroseconds(500);
104104

105-
bool added = slot.addNewInQueueSignalInternal(uuid, "{\"param\":\"value\"}", 500, chrono.getElapsedMicroseconds ());
105+
bool added = slot.addNewInQueueSignalInternal(uuid, "{\"param\":\"value\"}", 500, chrono.getElapsedMicroseconds ()) != nullptr;
106106
assertTrue(added);
107107

108108
assertIntegerRange(slot.getAvailableSignalQueueEntriesInternal(), 0, 4);
@@ -117,7 +117,8 @@ class CUnitTestGroup_SignalSlot : public CUnitTestGroup {
117117

118118
chrono.sleepMicroseconds(500);
119119

120-
assertTrue(slot.addNewInQueueSignalInternal(uuid, "{}", 500, chrono.getElapsedMicroseconds()));
120+
auto pMessage = slot.addNewInQueueSignalInternal(uuid, "{}", 500, chrono.getElapsedMicroseconds());
121+
assertTrue(pMessage != nullptr);
121122
chrono.sleepMicroseconds(500);
122123

123124
assertTrue(slot.changeSignalPhaseToInProcessInternal(uuid, chrono.getElapsedMicroseconds()));
@@ -138,7 +139,8 @@ class CUnitTestGroup_SignalSlot : public CUnitTestGroup {
138139
AMCCommon::CChrono chrono;
139140
chrono.sleepMicroseconds(500);
140141

141-
assertTrue(slot.addNewInQueueSignalInternal(uuid, "{}", 500, chrono.getElapsedMicroseconds()));
142+
auto pMessage = slot.addNewInQueueSignalInternal(uuid, "{}", 500, chrono.getElapsedMicroseconds());
143+
assertTrue(pMessage != nullptr);
142144

143145
chrono.sleepMicroseconds(500);
144146
assertTrue(slot.changeSignalPhaseToInFailedInternal(uuid, "{\"ok\":false}", "error", chrono.getElapsedMicroseconds()));
@@ -151,10 +153,12 @@ class CUnitTestGroup_SignalSlot : public CUnitTestGroup {
151153
chrono.sleepMicroseconds(500);
152154

153155
AMC::CStateSignalSlot slot("instance", "signal", {}, {}, 1000, 1, nullptr);
154-
assertTrue(slot.addNewInQueueSignalInternal("00000001-0000-0000-0000-000000000001", "{}", 500, chrono.getElapsedMicroseconds()));
156+
auto pMessage1 = slot.addNewInQueueSignalInternal("00000001-0000-0000-0000-000000000001", "{}", 500, chrono.getElapsedMicroseconds());
157+
assertTrue(pMessage1 != nullptr);
155158
chrono.sleepMicroseconds(500);
156159

157-
assertFalse(slot.addNewInQueueSignalInternal("00000002-0000-0000-0000-000000000002", "{}", 500, chrono.getElapsedMicroseconds())); // queue full
160+
auto pMessage2 = slot.addNewInQueueSignalInternal("00000002-0000-0000-0000-000000000002", "{}", 500, chrono.getElapsedMicroseconds());
161+
assertFalse(pMessage2 != nullptr); // queue full
158162
}
159163

160164
void test_PeekQueue() {
@@ -230,7 +234,8 @@ class CUnitTestGroup_SignalSlot : public CUnitTestGroup {
230234
ss << "f10" << std::setfill('0') << std::setw(5) << i << "-0000-0000-0000-000000000000";
231235
std::string uuid = ss.str();
232236

233-
bool ok = slot.addNewInQueueSignalInternal(uuid, "{}", 50, chrono.getElapsedMicroseconds());
237+
auto pMessage = slot.addNewInQueueSignalInternal(uuid, "{}", 50, chrono.getElapsedMicroseconds());
238+
bool ok = pMessage != nullptr;
234239
if (ok) accepted.push_back(uuid);
235240
else rejected.push_back(uuid);
236241
}

0 commit comments

Comments
 (0)