Browse Source

!16100 avoid call event method when event be set to nullptr

From: @kisnwang
Reviewed-by: @zhoufeng54,@jjfeing
Signed-off-by: @jjfeing
pull/16100/MERGE
mindspore-ci-bot Gitee 4 years ago
parent
commit
076f03cf32
1 changed files with 10 additions and 7 deletions
  1. +10
    -7
      mindspore/core/ir/tensor.h

+ 10
- 7
mindspore/core/ir/tensor.h View File

@@ -307,17 +307,20 @@ class Tensor : public MetaTensor {
} }


void SetNeedWait(bool need_wait) { void SetNeedWait(bool need_wait) {
if (event_ != nullptr) {
event_->set_need_wait(need_wait);
auto event = event_;
if (event != nullptr) {
event->set_need_wait(need_wait);
} else if (need_wait) { } else if (need_wait) {
event_ = std::make_shared<WaitEvent>();
event_->set_need_wait(need_wait);
event = std::make_shared<WaitEvent>();
event->set_need_wait(need_wait);
event_ = event;
} }
} }


bool NeedWait() const { bool NeedWait() const {
if (event_ != nullptr) {
return event_->need_wait();
auto event = event_;
if (event != nullptr) {
return event->need_wait();
} }
return false; return false;
} }
@@ -325,8 +328,8 @@ class Tensor : public MetaTensor {
void Wait() const { void Wait() const {
if (event_ != nullptr) { if (event_ != nullptr) {
event_->Wait(); event_->Wait();
event_ = nullptr;
} }
event_ = nullptr;
} }


void SetDeviceEvent(const std::shared_ptr<DeviceEvent> &device_event) { device_event_ = device_event; } void SetDeviceEvent(const std::shared_ptr<DeviceEvent> &device_event) { device_event_ = device_event; }


Loading…
Cancel
Save