[parrot/parrot] e2648b: [pmc] rpa: fix custom_mark_destroy confusion

GitHub noreply at github.com
Thu Jan 22 09:23:34 UTC 2015


  Branch: refs/heads/smoke-me/thread-lock-gh1187
  Home:   https://github.com/parrot/parrot
  Commit: e2648b6a3e3c7a3af64a30106bf4fa44a55c85fc
      https://github.com/parrot/parrot/commit/e2648b6a3e3c7a3af64a30106bf4fa44a55c85fc
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-22 (Thu, 22 Jan 2015)

  Changed paths:
    M include/parrot/pobj.h
    M src/pmc/resizablepmcarray.pmc

  Log Message:
  -----------
  [pmc] rpa: fix custom_mark_destroy confusion

custom_mark_destroy is only needed in the init method, which is fpa.set_integer_native.
optimize PObj_custom_mark_destroy_SETALL to use only one setter call.


  Commit: 4d173dba22a0247ccdc26eab538541381b9844d2
      https://github.com/parrot/parrot/commit/4d173dba22a0247ccdc26eab538541381b9844d2
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-22 (Thu, 22 Jan 2015)

  Changed paths:
    M include/parrot/atomic/gcc_x86.h
    M src/atomic/gcc_x86.c

  Log Message:
  -----------
  [atomic] cannot mix PARROT_EXPORT + PARROT_INLINE

remove the INLINE


  Commit: 966da7474ce0ee7958473fcd84472b48be47e6d3
      https://github.com/parrot/parrot/commit/966da7474ce0ee7958473fcd84472b48be47e6d3
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-22 (Thu, 22 Jan 2015)

  Changed paths:
    M include/parrot/packfile.h
    M src/gc/mark_sweep.c
    M src/packfile/api.c

  Log Message:
  -----------
  [GC] fix GC segfault with --optimize

A wrong PARROT_CANNOT_RETURN_NULL in Parrot_pf_get_current_code_segment
(unchecked return of inter->code, which can be null) causes GC segfaults
when inter->code == NULL.

Fixes GH #1186.
This wrong PARROT_CANNOT_RETURN_NULL was added with 3.6.0
in 7dc0e2276d3612afd at Wed Jun 29 20:52:24 2011
but started being fatal after the new packfile refactor with 7.0,
when the cc optimizer started optimizing away the bc != NULL check
in mark_code_segment()


  Commit: fe3b31127ddd8d2cdcb82a0a0865e1a5b4ee46a0
      https://github.com/parrot/parrot/commit/fe3b31127ddd8d2cdcb82a0a0865e1a5b4ee46a0
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-22 (Thu, 22 Jan 2015)

  Changed paths:
    M src/gc/mark_sweep.c

  Log Message:
  -----------
  [GC] optimize away a Parrot_pf_get_current_code_segment call

This was the call with the wrong CANNOT_RETURN_NULL attribute, causing GH #1186.
We only need inter->code, and it can be const. The const_table also


  Commit: bd482083f71fa8c7a0bd0ae80472739318a24241
      https://github.com/parrot/parrot/commit/bd482083f71fa8c7a0bd0ae80472739318a24241
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-22 (Thu, 22 Jan 2015)

  Changed paths:
    M src/gc/gc_gms.c

  Log Message:
  -----------
  [threads] fix deadlock in gc_gms_mark_and_sweep

move the lock downwards to the guard. Fixes GH #1187


  Commit: 2ef09ef408c93a54702a29b1e99f8501381c22a1
      https://github.com/parrot/parrot/commit/2ef09ef408c93a54702a29b1e99f8501381c22a1
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-22 (Thu, 22 Jan 2015)

  Changed paths:
    M src/gc/gc_gms.c

  Log Message:
  -----------
  threads: refactor thread locks in the GC

Simplify GC locks to new macros:
- THREAD_COND_{UN,}LOCK only if locked/lockable (with the self->locked guard)
- THREAD_{UN,}LOCK unconditionally (race free).


Compare: https://github.com/parrot/parrot/compare/e2648b6a3e3c^...2ef09ef408c9


More information about the parrot-commits mailing list