-
Notifications
You must be signed in to change notification settings - Fork 1.2k
fix missing function table clearing for loop body cleanup #4666
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
Conversation
clear the function table for loop body entrypoing case when debugger attaching, this is done for function entrypoint in last change but missed loop body case. also make sure of the integrity of clearing function table in the slist.
|
@dotnet-bot test OSX static_osx_osx_debug please |
lib/Runtime/Base/FunctionBody.cpp
Outdated
| { | ||
| // in case of debugger attaching, we have a new code generator and when deleting old code generator, | ||
| // the xData is not put in the delay list yet. clear the list now so the code addresses are ready to reuse | ||
| DelayDeletingFunctionTable::Clear(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would happen on every loop body cleanup?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For debugger attaching only
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As in, it only happens once during debugger attach, or when a debugger attaches, we would call DelayDeletingFunctionTable::Clear for every loop header cleanup?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can change to that, but basically the same, since it deleting same amount of function table. Currently didn’t use side channel in background thread for debugger attatching(like scriptcontext closing case), can change to that if we worry about hanging for debugger attatching
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forgot I just added lock for Clear, so Changing to clearing together can save the locking code, let me change to that
…/detaching case as well
curtisman
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
![]()
…body cleanup Merge pull request #4666 from leirocks:xdata1 clear the function table for loop body entrypoint case. when debugger attaching the code address is not freed through normal path hence clearing the xdata in main thread. this is done for function entrypoint in last change but missed loop body case. also make sure of the integrity of clearing function table in the slist.
… for loop body cleanup Merge pull request #4666 from leirocks:xdata1 clear the function table for loop body entrypoint case. when debugger attaching the code address is not freed through normal path hence clearing the xdata in main thread. this is done for function entrypoint in last change but missed loop body case. also make sure of the integrity of clearing function table in the slist.
…able clearing for loop body cleanup Merge pull request #4666 from leirocks:xdata1 clear the function table for loop body entrypoint case. when debugger attaching the code address is not freed through normal path hence clearing the xdata in main thread. this is done for function entrypoint in last change but missed loop body case. also make sure of the integrity of clearing function table in the slist.
clear the function table for loop body entrypoint case.
when debugger attaching the code address is not freed through normal path hence clearing the xdata in main thread. this is done for function entrypoint in last change but missed loop body case. also make sure of the integrity of clearing function table in the slist.