Author: Armin Rigo <[email protected]>
Branch: c7-refactor
Changeset: r873:c43f36e38277
Date: 2014-02-26 15:18 +0100
http://bitbucket.org/pypy/stmgc/changeset/c43f36e38277/

Log:    Remove this gross hack, and reintroduce the loop: if longjmp() is
        called, make sure we redo the setjmp()

diff --git a/c7/stmgc.h b/c7/stmgc.h
--- a/c7/stmgc.h
+++ b/c7/stmgc.h
@@ -214,14 +214,9 @@
    can be restarted using the 'jmpbuf' (a local variable of type
    stm_jmpbuf_t). */
 #define STM_START_TRANSACTION(tl, jmpbuf)  ({                   \
-    int _restart = __builtin_setjmp(jmpbuf) ? _stm_duck() : 0;  \
+    while (__builtin_setjmp(jmpbuf) == 1) { /*redo setjmp*/ }   \
     _stm_start_transaction(tl, &jmpbuf);                        \
-   _restart;                                                    \
 })
-static inline int _stm_duck(void) {
-    asm("/* workaround for a llvm bug */");
-    return 1;
-}
 
 /* Start an inevitable transaction, if it's going to return from the
    current function immediately. */
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to