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

Fix scheduler suspend edge case assertion #2641

Merged
merged 1 commit into from
Apr 12, 2018

Conversation

dipinhora
Copy link
Contributor

Prior to this commit, it was possible for a scheduler thread to
suspend even though it wasn't appropriate to do so because
another scheduler thread resumed prior to the lock being
acquired. This would result in incorrect behavior in the
release build and an assertion in the debug build.

See the following link for an example of the assertion being
triggered: https://circleci.com/gh/ponylang/ponyc/3809?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

This commit fixes the issue by not suspending if the schduler
count changed because another thread resumed.

@dipinhora
Copy link
Contributor Author

Restarted appveyor build that failed with the following while downloading llvm:

error: [Errno 10054] An existing connection was forcibly closed by the remote host

@dipinhora
Copy link
Contributor Author

Hmmm... Apparently, it's an all or nothing rebuild on appveyor so all of the appveyor builds are re-running. 8*/

Prior to this commit, it was possible for a scheduler thread to
suspend even though it wasn't appropriate to do so because
another scheduler thread resumed prior to the lock being
acquired. This would result in incorrect behavior in the
release build and an assertion in the debug build.

See the following link for an example of the assertion being
triggered: https://circleci.com/gh/ponylang/ponyc/3809?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

This commit fixes the issue by not suspending if the schduler
count changed because another thread resumed.
@dipinhora dipinhora force-pushed the remove_sched_suspend_assertion branch from a3ab554 to a9fb0da Compare April 12, 2018 17:18
@jemc jemc added the changelog - fixed Automatically add "Fixed" CHANGELOG entry on merge label Apr 12, 2018
@jemc jemc merged commit fbb8ccd into ponylang:master Apr 12, 2018
ponylang-main added a commit that referenced this pull request Apr 12, 2018
dipinhora added a commit to dipinhora/ponyc that referenced this pull request Jun 5, 2018
Prior to this commit, it was possible for a scheduler thread to
suspend even though it wasn't appropriate to do so because
another scheduler thread resumed prior to the lock being
acquired. This would result in incorrect behavior in the
release build and an assertion in the debug build.

See the following link for an example of the assertion being
triggered: https://circleci.com/gh/ponylang/ponyc/3809?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

This commit fixes the issue by not suspending if the schduler
count changed because another thread resumed.
dipinhora pushed a commit to dipinhora/ponyc that referenced this pull request Jun 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog - fixed Automatically add "Fixed" CHANGELOG entry on merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants