Skip to content

Commit cf15b99

Browse files
Luis Gascorichiware
authored andcommitted
Refs #5496 Reordering code to avoid data race on StatefulWriter destructor. (#546)
1 parent 6a6f79c commit cf15b99

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/cpp/rtps/writer/StatefulWriter.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,6 @@ StatefulWriter::~StatefulWriter()
109109
delete ack_timer_;
110110
}
111111

112-
// Stop all active proxies and pass them to the pool
113-
while (!matched_readers_.empty())
114-
{
115-
ReaderProxy* remote_reader = matched_readers_.back();
116-
matched_readers_.pop_back();
117-
remote_reader->stop();
118-
matched_readers_pool_.push_back(remote_reader);
119-
}
120-
121112
if(nack_response_event_ != nullptr)
122113
{
123114
delete(nack_response_event_);
@@ -131,11 +122,21 @@ StatefulWriter::~StatefulWriter()
131122
mp_periodicHB = nullptr;
132123
}
133124

125+
// Stop all active proxies and pass them to the pool
126+
while (!matched_readers_.empty())
127+
{
128+
ReaderProxy* remote_reader = matched_readers_.back();
129+
matched_readers_.pop_back();
130+
remote_reader->stop();
131+
matched_readers_pool_.push_back(remote_reader);
132+
}
133+
134134
// Delete all proxies in the pool
135135
for (ReaderProxy* remote_reader : matched_readers_pool_)
136136
{
137137
delete(remote_reader);
138138
}
139+
139140
}
140141

141142
/*

0 commit comments

Comments
 (0)