[pypy-commit] stmgc c8-gil-like: tweaks, some tests pass again
arigo
noreply at buildbot.pypy.org
Tue Jun 9 17:15:28 CEST 2015
Author: Armin Rigo <arigo at tunes.org>
Branch: c8-gil-like
Changeset: r1795:c8581bc6bc2a
Date: 2015-06-09 17:16 +0200
http://bitbucket.org/pypy/stmgc/changeset/c8581bc6bc2a/
Log: tweaks, some tests pass again
diff --git a/c8/stm/detach.c b/c8/stm/detach.c
--- a/c8/stm/detach.c
+++ b/c8/stm/detach.c
@@ -65,12 +65,12 @@
*/
assert(_has_mutex());
- restart:
- stm_thread_local_t *old = stm_detached_inevitable_from_thread;
+ restart:;
+ stm_thread_local_t *old = _stm_detached_inevitable_from_thread;
if (old == NULL || old == DETACHED_NO_THREAD)
return;
- if (!__sync_bool_compare_and_swap(&stm_detached_inevitable_from_thread,
+ if (!__sync_bool_compare_and_swap(&_stm_detached_inevitable_from_thread,
old, DETACHED_NO_THREAD))
goto restart;
}
diff --git a/c8/stmgc.h b/c8/stmgc.h
--- a/c8/stmgc.h
+++ b/c8/stmgc.h
@@ -419,13 +419,13 @@
far more efficient than constantly starting and committing
transactions.
*/
-inline void stm_enter_transactional_zone(stm_thread_local_t *tl) {
+static inline void stm_enter_transactional_zone(stm_thread_local_t *tl) {
stm_thread_local_t *old = __sync_lock_test_and_set( /* XCHG */
&_stm_detached_inevitable_from_thread, NULL);
if (old != (tl))
_stm_reattach_transaction(old, tl);
}
-inline void stm_leave_transactional_zone(stm_thread_local_t *tl) {
+static inline void stm_leave_transactional_zone(stm_thread_local_t *tl) {
assert(STM_SEGMENT->running_thread == tl);
if (stm_is_inevitable())
_stm_detach_inevitable_transaction(tl);
More information about the pypy-commit
mailing list