Skip to content

Commit c944d6e

Browse files
authored
Merge pull request #101 from Kojoley/fix-thread-state-getter
Fixed PyThreadState getter
2 parents 0626b9a + c3f3371 commit c944d6e

1 file changed

Lines changed: 6 additions & 12 deletions

File tree

src/vmprof_common.h

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -132,19 +132,13 @@ static int opened_profile(char *interp_name, int memory, int lines)
132132
return _write_all((char*)&header, 5 * sizeof(long) + 5 + namelen);
133133
}
134134

135-
// for whatever reason python-dev decided to hide that one
136-
#if PY_MAJOR_VERSION >= 3 && !defined(_Py_atomic_load_relaxed)
137-
/* this was abruptly un-defined in 3.5.1 */
138-
extern void *volatile _PyThreadState_Current;
139-
/* XXX simple volatile access is assumed atomic */
140-
# define _Py_atomic_load_relaxed(pp) (*(pp))
141-
#endif
142-
143-
PyThreadState* get_current_thread_state(void)
135+
PyThreadState * get_current_thread_state(void)
144136
{
145-
#if PY_MAJOR_VERSION >= 3
146-
return (PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current);
147-
#else
137+
#if PY_MAJOR_VERSION < 3
148138
return _PyThreadState_Current;
139+
#elif PY_VERSION_HEX < 0x03050200
140+
return (PyThreadState*) _Py_atomic_load_relaxed(&_PyThreadState_Current);
141+
#else
142+
return _PyThreadState_UncheckedGet();
149143
#endif
150144
}

0 commit comments

Comments
 (0)