Skip to content

Commit 3618de1

Browse files
committed
Thread safe lock-free iteration
1 parent 58cb634 commit 3618de1

File tree

2 files changed

+299
-36
lines changed

2 files changed

+299
-36
lines changed

Include/internal/pycore_dict.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ static inline PyDictUnicodeEntry* DK_UNICODE_ENTRIES(PyDictKeysObject *dk) {
205205
#define DICT_WATCHER_MASK ((1 << DICT_MAX_WATCHERS) - 1)
206206
#define DICT_WATCHER_AND_MODIFICATION_MASK ((1 << (DICT_MAX_WATCHERS + DICT_WATCHED_MUTATION_BITS)) - 1)
207207

208+
#define DICT_VALUES_USED_SIZE(values) ((uint8_t *)values)[-2]
209+
208210
#ifdef Py_GIL_DISABLED
209211
#define DICT_NEXT_VERSION(INTERP) \
210212
(_Py_atomic_add_uint64(&(INTERP)->dict_state.global_version, DICT_VERSION_INCREMENT) + DICT_VERSION_INCREMENT)

0 commit comments

Comments
 (0)