zlomek commented on code in PR #379:
URL: https://github.com/apache/qpid-proton/pull/379#discussion_r1481791944
##########
cpp/src/proactor_container_impl.cpp:
##########
@@ -532,7 +540,13 @@ void container::impl::run_timer_jobs() {
// We've now taken the tasks to run from the deferred tasks
// so we can run them unlocked
// NB. We copied the due tasks in reverse order so execute from end
- for (int i = tasks.size()-1; i>=0; --i) tasks[i].task();
+
+ for (int i = tasks.size()-1; i>=0; --i) {
+ if(is_active_.count(tasks[i].w_handle)) {
+ tasks[i].task();
+ is_active_.erase(tasks[i].w_handle);
Review Comment:
@DreamPearl
I believe, there is a race condition in reading / writing `is_active_` here
while modifying it in `schedule()` or `cancel()` above.
Could you please check?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]