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