Skip to content

Commit e2cfa9a

Browse files
vladimir-paramuzovrnugmanx
authored and
rnugmanx
committed
[IE CLDNN] Fixed invalid stream reference in network_output if network is deleted (openvinotoolkit#6281)
1 parent 8806f40 commit e2cfa9a

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

inference-engine/thirdparty/clDNN/api/cldnn/graph/network.hpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ struct network_output {
3636
memory::ptr get_memory() const {
3737
// TODO: in_order queue doesn't create proper output event in some cases which leads to syncronization issues with user app
3838
// So call finish for associated stream to enusre that the output data is ready.
39-
if (_stream.get_queue_type() == queue_types::in_order) {
40-
_stream.finish();
39+
if (_stream->get_queue_type() == queue_types::in_order) {
40+
_stream->finish();
4141
} else {
4242
_event->wait();
4343
}
@@ -47,8 +47,8 @@ struct network_output {
4747
private:
4848
event::ptr _event;
4949
memory::ptr _result;
50-
stream& _stream;
51-
network_output(event::ptr evt, memory::ptr mem, stream& stream) : _event(evt), _result(mem), _stream(stream) {}
50+
stream::ptr _stream;
51+
network_output(event::ptr evt, memory::ptr mem, stream::ptr stream) : _event(evt), _result(mem), _stream(stream) {}
5252
friend struct network;
5353
};
5454

@@ -110,6 +110,8 @@ struct network {
110110

111111
stream& get_stream() const;
112112

113+
stream::ptr get_stream_ptr() const;
114+
113115
/// @brief Return internal network id.
114116
uint32_t get_id();
115117

@@ -144,7 +146,7 @@ struct network {
144146

145147
/// @brief Returns @ref network_output object for particular @p output. Can't be called before network execution
146148
network_output get_output(const primitive_id& output_id) const {
147-
return network_output(get_primitive_event(output_id), get_output_memory(output_id), get_stream());
149+
return network_output(get_primitive_event(output_id), get_output_memory(output_id), get_stream_ptr());
148150
}
149151

150152
/// @brief Returns the list of @ref event for the primitives that were executed in network.

inference-engine/thirdparty/clDNN/src/network.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ stream& network::get_stream() const {
6969
return _impl->get_stream();
7070
}
7171

72+
stream::ptr network::get_stream_ptr() const {
73+
return _impl->get_stream_ptr();
74+
}
75+
7276
uint32_t network::get_id() {
7377
return _impl->get_id();
7478
}

0 commit comments

Comments
 (0)