quiescence issue with actor pinning #4582
Labels
bug
Something isn't working
help wanted
Extra attention is needed
needs investigation
This needs to be looked into before its "ready for work"
The expectation when we merged actor pinning was that it worked the same for quiescence as a program without pinning. However that isn't the case at the moment. Given the quiescence rules, we would expect the following program to never end as the
Main
actor will always have a message in its queue.However, the program does in fact exit.
With a slight tweak, it doesn't:
So long as regular scheduler threads have an actor that is busy, the program will continue to run. Here we introduced sending a message to the unpinned outstream actor and we continue to process.
This was brought to my attention by @redvers who was working with early actor pinning work from @dipinhora's branch and his programs were working great. When he switched to an official ponyc release, they would exit.
I did a bit of spelunking and as one might guess, this started happening before we merged. I did some testing and we start seeing this in commit 8c338ae aka "make pinned actor thread participate in CNF/ACK for termination".
The text was updated successfully, but these errors were encountered: