Add a memory barrier inside pseudo-atomic on PPC.
authorStas Boukarev <stassats@gmail.com>
Thu, 15 Aug 2013 18:02:54 +0000 (22:02 +0400)
committerStas Boukarev <stassats@gmail.com>
Thu, 15 Aug 2013 18:02:54 +0000 (22:02 +0400)
Solves problems with allocation and multiple threads.

src/compiler/ppc/macros.lisp

index 645c566..1905a7f 100644 (file)
          (inst twi :ne ,flag-tn 0))
        (inst ori alloc-tn alloc-tn pseudo-atomic-flag))
      ,@forms
+     (inst sync)
      (without-scheduling ()
        (inst subi alloc-tn alloc-tn pseudo-atomic-flag)
        ;; Now test to see if the pseudo-atomic interrupted bit is set.