[parrot/parrot] 05965d: Keep the GC blocked until the proxy for the result...

GitHub noreply at github.com
Sun Apr 1 11:57:44 UTC 2012


  Branch: refs/heads/threads
  Home:   https://github.com/parrot/parrot
  Commit: 05965d9675f60a175b6f55f57fe60ad4d296fef7
      https://github.com/parrot/parrot/commit/05965d9675f60a175b6f55f57fe60ad4d296fef7
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2012-04-01 (Sun, 01 Apr 2012)

  Changed paths:
    M lib/Parrot/Pmc2c/PMC/Proxy.pm
  M src/pmc/proxy.pmc

  Log Message:
  -----------
  Keep the GC blocked until the proxy for the result is created.

We were blocking the GC while the call on the proxied PMC was
running to prevent it from finding foreign PMCs on the stack. But even
after the call, there's still the result! When creating the proxy for
the result, the GC was already unblocked and every 100,000th proxied
call or so it would start marking at this exact moment and find the
result PMC.

Fixed by simply unblocking the GC only after the proxy is created and
the original being no longer on the stack.





More information about the parrot-commits mailing list