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.
Issue #, if available: 2744
Description of changes: Ensures that
ThreadTask
holds thePooledThreadExecutor
's mutex between when it sees that them_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
withstd::condition_variable
here.Check all that applies:
Check which platforms you have built SDK on to verify the correctness of this PR.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.