Skip to content
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

RPC receive #142

Merged
merged 2 commits into from
Jun 21, 2017
Merged

RPC receive #142

merged 2 commits into from
Jun 21, 2017

Conversation

SergiySW
Copy link
Contributor

Will be useful if someone send less than threshold, but cumulative > threshold. Such as 99 + 99 > 100 and cannot be received by current exchanges

@clemahieu clemahieu merged commit 0345aa0 into nanocurrency:master Jun 21, 2017
dsiganos added a commit that referenced this pull request Jun 13, 2022
- Limit the vote_processor::flush_active()
- The is_active var became useless, also moved the lock position
- Move the condition.notify_all() up
- Improve function flush documentation
- Test normal behavior is getting more votes than processing
- Also updated the invalid_signature test to ASSERT_TIMELY since it
should wait for a flush to happen.
- Also removed the lock for reading total_processed atomic
variable
- Explicitly check for timeout in unit test vote_processor.overflow
- Vote processor: clear votes and notify condition variable on thread
exit

In theory the vote processor can be stopped and have votes left in its
queue which would just be strange and a potential source of problems.

Also, a final kick of the condition variable is needed on thread exit
and after vote clearing.

- Check for confirm req loop blocking too long on vote process flush

This has been a problem in the past and it is always tricky to do flush
operations, so it is prudent to add a check for timeout here and display
a warning in release and throw an assert in debug builds.

- Use std::memory_order_relaxed in vote processor::flush for
total_processed

There is no need to take a memory barrier when reading the atomic
total_processed, so use relaxed memory order.

Co-Authored-By: Dimitrios Siganos <[email protected]>

Co-authored-by: Dimitrios Siganos <[email protected]>
pwojcikdev pushed a commit to pwojcikdev/nano-node that referenced this pull request Jun 14, 2022
…y#142)

- Limit the vote_processor::flush_active()
- The is_active var became useless, also moved the lock position
- Move the condition.notify_all() up
- Improve function flush documentation
- Test normal behavior is getting more votes than processing
- Also updated the invalid_signature test to ASSERT_TIMELY since it
should wait for a flush to happen.
- Also removed the lock for reading total_processed atomic
variable
- Explicitly check for timeout in unit test vote_processor.overflow
- Vote processor: clear votes and notify condition variable on thread
exit

In theory the vote processor can be stopped and have votes left in its
queue which would just be strange and a potential source of problems.

Also, a final kick of the condition variable is needed on thread exit
and after vote clearing.

- Check for confirm req loop blocking too long on vote process flush

This has been a problem in the past and it is always tricky to do flush
operations, so it is prudent to add a check for timeout here and display
a warning in release and throw an assert in debug builds.

- Use std::memory_order_relaxed in vote processor::flush for
total_processed

There is no need to take a memory barrier when reading the atomic
total_processed, so use relaxed memory order.

Co-Authored-By: Dimitrios Siganos <[email protected]>

Co-authored-by: Dimitrios Siganos <[email protected]>
# Conflicts:
#	nano/core_test/vote_processor.cpp
gr0vity-dev pushed a commit to gr0vity-dev/nano-node that referenced this pull request Jul 9, 2022
…y#142)

- Limit the vote_processor::flush_active()
- The is_active var became useless, also moved the lock position
- Move the condition.notify_all() up
- Improve function flush documentation
- Test normal behavior is getting more votes than processing
- Also updated the invalid_signature test to ASSERT_TIMELY since it
should wait for a flush to happen.
- Also removed the lock for reading total_processed atomic
variable
- Explicitly check for timeout in unit test vote_processor.overflow
- Vote processor: clear votes and notify condition variable on thread
exit

In theory the vote processor can be stopped and have votes left in its
queue which would just be strange and a potential source of problems.

Also, a final kick of the condition variable is needed on thread exit
and after vote clearing.

- Check for confirm req loop blocking too long on vote process flush

This has been a problem in the past and it is always tricky to do flush
operations, so it is prudent to add a check for timeout here and display
a warning in release and throw an assert in debug builds.

- Use std::memory_order_relaxed in vote processor::flush for
total_processed

There is no need to take a memory barrier when reading the atomic
total_processed, so use relaxed memory order.

Co-Authored-By: Dimitrios Siganos <[email protected]>

Co-authored-by: Dimitrios Siganos <[email protected]>
# Conflicts:
#	nano/core_test/vote_processor.cpp
gr0vity-dev pushed a commit to gr0vity-dev/nano-node that referenced this pull request Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants