-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added timeout non-zero verification - fixes #776 #781
Conversation
while (m_listening) { | ||
t.rearm(1.msecs, false); | ||
t.wait(); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this is left over from debugging?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the sleep timer creates a new one every msec, it reaches 4500 IDs by the time the server is stopped
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think that this is performance relevant? Timer creation is usually nothing more than assigning a few bytes of memory and incrementing a counter (plus some modulus calculation in the hash map).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not very relevant for performance, I was trying to figure out where all those timers came from when tracing and afterwards, I realized it would have been easier to debug it if it showed up as the same ID.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So it is in fact a leftover from debugging ;)
I think we should solve this at a lower level. This just makes the code less readable for no obvious gain (apart from making timer debugging slightly easier when using this specific Redis functionality, which should be a highly uncommon case). There could for example be a special per-task default timer that is used by sleep
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I had a feeling the proposed solution would be at a lower level.
looks good to me, @s-ludwig can you tag it after merging ? |
@extrawurst: Will do. |
Quick fix Removed RedisDebug version for faster travis builds Remove debug artifacts
Thanks @etcimon! Hopefully Travis is also reliable again now. |
Add non-zero timeout verification. Fixes #776. Also removes the RedisDebug version from the Redis integration test to sidestep Travis CI woes.
The pubsub listener was making the
bstop
call wait forever, because it was never listening in the first place: the 0 secondDuration
timeout was being triggered, rather than being considered as a "no timeout" value.