Image ratelimiting / debouncing#20
Closed
zgiles wants to merge 1 commit into
Closed
Conversation
Adding a blocking function to prevent multiple callbacks at the same time (or close together) from causing either a) a function to throw an exception because an object is busy doing something already, b) getting into code where it looked like something was available but isn't now, or c) multiple pictures within a few seconds. This blocking is simple and works by creating a synchronization group which controls a BOOL so that only one call can edit the BOOL at the same time. It also sets a timer in another thread to reset the BOOL after some time (10seconds for now) so that we have up to 10s of unlimited bad calls against the function before another one wins. The logs state when a thread tried and won or lost. An earlier commit to make the 2.0f delay standard across the board helped here. Everything including the menubar call go through to ensure nothing fights with each other.
Contributor
Author
|
Curious if this is going to get merged in.. |
Member
99faf7d to
1fb02cf
Compare
Member
|
I think switching to nscontrol queues finally licked this. 1979edc |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adding a blocking function to prevent multiple callbacks at the same
time (or close together) from causing either a) a function to throw an
exception because an object is busy doing something already, b) getting
into code where it looked like something was available but isn't now,
or c) multiple pictures within a few seconds.
This blocking is simple and works by creating a synchronization group
which controls a BOOL so that only one call can edit the BOOL at the
same time. It also sets a timer in another thread to reset the BOOL
after some time (10seconds for now) so that we have up to 10s of
unlimited bad calls against the function before another one wins.
The logs state when a thread tried and won or lost.
An earlier commit to make the 2.0f delay standard across the board
helped here. Everything including the menubar call go through to ensure
nothing fights with each other.