[D-runtime] [D-Programming-Language/druntime] 2db514: fix infinite loop in (cast()super).toString

GitHub via D-runtime d-runtime at puremagic.com
Tue Mar 8 08:21:59 PST 2016


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/druntime
  Commit: 2db5144a57557338f5c57320c4cb34deecfb7ad0
      https://github.com/D-Programming-Language/druntime/commit/2db5144a57557338f5c57320c4cb34deecfb7ad0
  Author: Martin Nowak <code at dawg.eu>
  Date:   2016-03-04 (Fri, 04 Mar 2016)

  Changed paths:
    M src/core/exception.d

  Log Message:
  -----------
  fix infinite loop in (cast()super).toString

- the compiler doesn't recognize this as super call
  and will use dynamic dispatch leading to an infinite loop


  Commit: 38f6434ddbd9a5c2af0fe9cb93ea0da18b0d4e57
      https://github.com/D-Programming-Language/druntime/commit/38f6434ddbd9a5c2af0fe9cb93ea0da18b0d4e57
  Author: Martin Nowak <code at dawg.eu>
  Date:   2016-03-04 (Fri, 04 Mar 2016)

  Changed paths:
    M mak/COPY
    M mak/SRCS
    A src/core/internal/spinlock.d
    M src/core/thread.d
    M src/gc/gc.d
    M win32.mak
    M win64.mak

  Log Message:
  -----------
  spinlock for GC

- less overhead than pthread_mutex
- uses test and test-and-set algorithm with configurable backoff


  Commit: f388297281f5cb839a11c2d8a482d644cfcd6c3a
      https://github.com/D-Programming-Language/druntime/commit/f388297281f5cb839a11c2d8a482d644cfcd6c3a
  Author: Martin Nowak <code at dawg.eu>
  Date:   2016-03-04 (Fri, 04 Mar 2016)

  Changed paths:
    M src/gc/gc.d

  Log Message:
  -----------
  avoid any GC deadlocks

- always use runLocked which now unlocks on error
- check for recursive GC entrance during finalization
  inFinalizer can be thread local b/c we're finalizing in the
  same thread that currently holds the lock


  Commit: 3a43adb9497fdf19ccab27440a30f7c27b307b24
      https://github.com/D-Programming-Language/druntime/commit/3a43adb9497fdf19ccab27440a30f7c27b307b24
  Author: Martin Nowak <code at dawg.eu>
  Date:   2016-03-04 (Fri, 04 Mar 2016)

  Changed paths:
    M src/core/memory.d
    M src/core/runtime.d
    M src/gc/proxy.d
    M src/gcstub/gc.d

  Log Message:
  -----------
  workaround recursive GC calls for traces created in finalizers

- all trace handlers should be @nogc but that's currently out of
  scope b/c it requires to rewrite all backtrace and demangle code


  Commit: 51576e7d4d02643152df90de0ae7bc61b1087680
      https://github.com/D-Programming-Language/druntime/commit/51576e7d4d02643152df90de0ae7bc61b1087680
  Author: Andrei Alexandrescu <andrei at erdani.com>
  Date:   2016-03-08 (Tue, 08 Mar 2016)

  Changed paths:
    M mak/COPY
    M mak/SRCS
    M src/core/exception.d
    A src/core/internal/spinlock.d
    M src/core/memory.d
    M src/core/runtime.d
    M src/core/thread.d
    M src/gc/gc.d
    M src/gc/proxy.d
    M src/gcstub/gc.d
    M win32.mak
    M win64.mak

  Log Message:
  -----------
  Merge pull request #1447 from MartinNowak/spinLock

spinlock for GC


Compare: https://github.com/D-Programming-Language/druntime/compare/c1db2d5636af...51576e7d4d02


More information about the D-runtime mailing list