Merged
Conversation
scalablecory
approved these changes
Nov 26, 2019
ViktorHofer
approved these changes
Nov 26, 2019
Member
|
Thanks a lot Drew |
stephentoub
reviewed
Nov 26, 2019
| If you need to coordinate with unmanaged code, or if you need to do WaitForMultipleHandles ANY/ALL, you will have to avoid WszCreateEvent. If you really know what you are doing, go directly to the OS to obtain these handles. Everyone else should seek advice from someone who thoroughly understands the implications to our host. Obviously the general rule is that everyone should go through our hosted abstraction. | ||
|
|
||
| Sometimes you might find yourself building the equivalent of a critical section, but using an event directly. The problem here is that we cannot identify the thread that owns the lock, because the owner isn't identified until he "leaves'" the lock by calling SetEvent or Pulse. Consider whether a Crst might be more appropriate. | ||
| Sometimes you might find yourself building the equivalent of a critical section, but using an event directly. The problem here is that we cannot identify the thread that owns the lock, because the owner isn't identified until they "leave'" the lock by calling SetEvent or Pulse. Consider whether a Crst might be more appropriate. |
Member
There was a problem hiding this comment.
Suggested change
| Sometimes you might find yourself building the equivalent of a critical section, but using an event directly. The problem here is that we cannot identify the thread that owns the lock, because the owner isn't identified until they "leave'" the lock by calling SetEvent or Pulse. Consider whether a Crst might be more appropriate. | |
| Sometimes you might find yourself building the equivalent of a critical section, but using an event directly. The problem here is that we cannot identify the thread that owns the lock, because the owner isn't identified until they "leave" the lock by calling SetEvent or Pulse. Consider whether a Crst might be more appropriate. |
| // We populate the code for ReJit eagerly to make sure we still have it if the profiler removes the | ||
| // instrumentation later. Of course the only way it will still be accessible to our caller is if he | ||
| // saves a pointer to the ILCode. | ||
| // instrumentation later. Of course the only way it will still be accessible to our caller is if they |
Member
There was a problem hiding this comment.
Suggested change
| // instrumentation later. Of course the only way it will still be accessible to our caller is if they | |
| // instrumentation later. Of course the only way it will still be accessible to our caller is if it |
| // instrumentation later. Of course the only way it will still be accessible to our caller is if he | ||
| // saves a pointer to the ILCode. | ||
| // instrumentation later. Of course the only way it will still be accessible to our caller is if they | ||
| // save a pointer to the ILCode. |
Member
There was a problem hiding this comment.
Suggested change
| // save a pointer to the ILCode. | |
| // saves a pointer to the ILCode. |
| ** we're pretty sure the caller wants a 'for' loop. without | ||
| ** setting the flag, when we're almost absolutely sure, we'll | ||
| ** give him one, since the only thing we can shift on this | ||
| ** give them one, since the only thing we can shift on this |
Member
There was a problem hiding this comment.
Suggested change
| ** give them one, since the only thing we can shift on this | |
| ** give it one, since the only thing we can shift on this |
| // The fundamental rule of the hierarchy that threads can only request | ||
| // a crst whose level is lower than any crst currently held by the thread. | ||
| // E.g. if a thread current holds a level-3 crst, he can try to enter | ||
| // E.g. if a thread current holds a level-3 crst, it can try to enter |
Member
There was a problem hiding this comment.
Suggested change
| // E.g. if a thread current holds a level-3 crst, it can try to enter | |
| // E.g. if a thread currently holds a level-3 crst, it can try to enter |
| _ASSERTE_MSG( | ||
| *pDomainAssemblyHolder == dbg_m_pDomainAssembly, | ||
| "Caller probably modified the assembly holder, which he shouldn't - see method comment."); | ||
| "Caller probably modified the assembly holder, which they shouldn't - see method comment."); |
Member
There was a problem hiding this comment.
Suggested change
| "Caller probably modified the assembly holder, which they shouldn't - see method comment."); | |
| "Caller probably modified the assembly holder, which it shouldn't - see method comment."); |
| /// The LoaderClass is how we communicate with other app domains. He has to do 3 important things: 1) Load assemblies into the | ||
| /// The LoaderClass is how we communicate with other app domains. It has to do 3 important things: 1) Load assemblies into the | ||
| /// remote app domain (via Load/LoadFrom), 2) get back an object which represents the test (this is either an I...RelibilityTest or | ||
| /// a string indicating the assembly to run) (via GetTest), and 3) verify that our app domain is still running & healthy (via StillAlive) |
Member
There was a problem hiding this comment.
Suggested change
| /// a string indicating the assembly to run) (via GetTest), and 3) verify that our app domain is still running & healthy (via StillAlive) | |
| /// a string indicating the assembly to run) (via GetTest), and 3) verify that our app domain is still running and healthy (via StillAlive) |
| Assert.Equal(val, dr["computedCol"]); | ||
| } | ||
| //Now reset the expression and check that the column got his deafult value | ||
| //Now reset the expression and check that the column got its deafult value |
Member
There was a problem hiding this comment.
Suggested change
| //Now reset the expression and check that the column got its deafult value | |
| // Now reset the expression and check that the column got its default value |
| var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cts2Token, userToken); | ||
|
|
||
| // User calls Cancel() on his CTS and then Dispose() | ||
| // User calls Cancel() on their CTS and then Dispose() |
Member
There was a problem hiding this comment.
Suggested change
| // User calls Cancel() on their CTS and then Dispose() | |
| // User calls Cancel() and then Dispose() on the CTS |
MichalStrehovsky
pushed a commit
to MichalStrehovsky/runtime
that referenced
this pull request
Nov 4, 2020
Merge from dotnet/runtime
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR:
In many instances this is achieved through the use of the singular they pronoun and related forms.