[parrot/parrot] ab1d2d: Perform GC write barriers for shared PMCs only on ...

GitHub noreply at github.com
Sun Apr 15 13:23:41 UTC 2012


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

  Changed paths:
    M include/parrot/thread.h
    M src/gc/gc_gms.c
    M src/thread.c

  Log Message:
  -----------
  Perform GC write barriers for shared PMCs only on the main interp

Performing write barriers on a different interp than the one owning a
PMC leads to corruption of the GC's objects and dirty lists since the
write barrier removes the PMC from the objects list of the generation
the PMC belongs to. This causes the next_free pointer of the main
thread's GC's objects list to point to a place in the child interp's
objects list.

Fixed by checking the shared flag and delegating the call to the
main_interp if the current interp is a child.


  Commit: 145ba94e806983868a060bf723bca699f8b585fc
      https://github.com/parrot/parrot/commit/145ba94e806983868a060bf723bca699f8b585fc
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2012-04-15 (Sun, 15 Apr 2012)

  Changed paths:
    M src/thread.c

  Log Message:
  -----------
  MUTEX_INIT the interp_lock


Compare: https://github.com/parrot/parrot/compare/905fe09...145ba94


More information about the parrot-commits mailing list