On 8/28/06, Weldon Washburn <[EMAIL PROTECTED]> wrote:
When the JITed code sees the flag set, it will suspend the thread and report the live references. As far as I know the DRLVM JIT you are looking at does not quite do this yet.
Weldon, AFAIK both DRLVM JITs: Jitrino.JET & Jitrino.OPT do back branch polling. In other words once JIT founds a method or a loop without any VM-helper-calls (that are suspension points) it inserts special code (look for "back branch polling or bbp" in sources), checks TLS flag (with a helper call or directly) and calls VM helper to suspend the thread if needed. All thread suspensions points are enumeration points from GC's point of view. Also I know that Jitrino.OPT BBP (back-branch-polling) algorithm could be optimized to avoid insertion of BBP checking code in to the finite loops. I hope we will back to this problem because solving it we get a real percents in performance. -- Mikhail Fursov