Changes were to check for null pointer after calling lock on a weak pointer.

This commit is contained in:
mrkraimer
2021-03-06 14:14:39 -05:00
parent bc70b5f449
commit bd1054f247

View File

@ -520,6 +520,7 @@ void ChannelPutLocal::put(
ChannelPutRequester::shared_pointer requester = channelPutRequester.lock(); ChannelPutRequester::shared_pointer requester = channelPutRequester.lock();
if(!requester) return; if(!requester) return;
ChannelLocalPtr channel(channelLocal.lock()); ChannelLocalPtr channel(channelLocal.lock());
if(!channel) throw std::logic_error("channel is deleted");
if(!channel->canWrite()) { if(!channel->canWrite()) {
Status status = Status::error("Channel put is not allowed"); Status status = Status::error("Channel put is not allowed");
requester->putDone(status,getPtrSelf()); requester->putDone(status,getPtrSelf());
@ -687,6 +688,7 @@ void ChannelPutGetLocal::putGet(
ChannelPutGetRequester::shared_pointer requester = channelPutGetRequester.lock(); ChannelPutGetRequester::shared_pointer requester = channelPutGetRequester.lock();
if(!requester) return; if(!requester) return;
ChannelLocalPtr channel(channelLocal.lock()); ChannelLocalPtr channel(channelLocal.lock());
if(!channel) throw std::logic_error("channel is deleted");
if(!channel->canWrite()) { if(!channel->canWrite()) {
Status status = Status::error("Channel putGet is not allowed"); Status status = Status::error("Channel putGet is not allowed");
requester->putGetDone(status,getPtrSelf(),pvGetStructure,getBitSet); requester->putGetDone(status,getPtrSelf(),pvGetStructure,getBitSet);