Hi, David Stutz wrote:
> > Where are you seeing synchronous suspension? Could you be more specific > about what you're seeing that you'd like to understand? > > well it all started after i saw a block of comments in vm/threads.cpp which mentions about sync and async suspension as i understand it, the compiler emits calls to JIT_PollGC at safe points (this calls CommonTripThread which is supposed to belong to the category of synchronous suspension functions). so i wanted a clear picture of the interaction happening between SysSuspendForGC and CommonTripThread. And also i would be extremely grateful if you could explain about- the Preemptive mode of the GC does this mode come into picture only when unmanaged code is executed ? most of the references in the code indicate that preemptive mode is enabled when there are calls to the OS / any exceptions occuring etc.. i am not able to understand this part of the functionality Is there any relation between this and the macros GCPROTECT_BEGIN and GCPROTECT_END ? (they seem to push objects onto a newly created frame which would be updated by the GC if it occurs etc..) thank you. regards, archana