aws-sdk-cpp icon indicating copy to clipboard operation
aws-sdk-cpp copied to clipboard

Issue 2744: fix liveness / performance bug in PooledThreadExecutor

Open hunjmes opened this issue 2 years ago • 0 comments

Issue #, if available: 2744

Description of changes: Ensures that ThreadTask holds the PooledThreadExecutor's mutex between when it sees that the m_executor does not have any tasks, and when it waits on the condition variable.

Since AWS Semaphore does not take a mutex as parameter, replaces use of Semaphore with std::condition_variable here.

Check all that applies:

  • [ x ] Did a review by yourself.
  • [ ] Added proper tests to cover this PR. (If tests are not applicable, explain.)
  • [ x ] Checked if this PR is a breaking (APIs have been changed) change.
  • [ x ] Checked if this PR will not introduce cross-platform inconsistent behavior.
  • [ x ] Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

  • [ x ] Linux
  • [ ] Windows
  • [ ] Android
  • [ ] MacOS
  • [ ] IOS
  • [ ] Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

hunjmes avatar Nov 10 '23 03:11 hunjmes