Hello,
I submitted a PR (#47) that was merged (thank you). However, I didn't do much testing and spotted a bug.
Problem:
Calling remove()modify the watched item vector. Doing so from an handler means we remove element from a vector while iterating over it (see zmqpp::reactor::poll). This is wrong.
Fix:
This add two vectors that store items are to be removed. Those vector are "flushed" (meaning the items are effectively removed from the reactor and poller) in the poll() method.
Calling remove from a handler will cause a delayed removable, and will not cause incorrect behavior.
Hello, I submitted a PR (#47) that was merged (thank you). However, I didn't do much testing and spotted a bug.
Problem:
remove()
modify the watched item vector. Doing so from an handler means we remove element from a vector while iterating over it (seezmqpp::reactor::poll
). This is wrong.Fix:
poll()
method.Does that seems right?