diff --git a/src/xpdev/threadwrap.h b/src/xpdev/threadwrap.h
index 19d14575e447aa796ff0e9553c54f071c6c6d858..9bb64ba9124d7e9b69c4e25b2266d60ca60d1acb 100644
--- a/src/xpdev/threadwrap.h
+++ b/src/xpdev/threadwrap.h
@@ -175,6 +175,11 @@ typedef std::atomic<uint64_t> protected_uint64_t;
 #define protected_int64_init(pval, val) std::atomic_store<int64_t>(pval, val)
 #define protected_uint64_init(pval, val) std::atomic_store<uint64_t>(pval, val)
 
+#define protected_int32_set(pval, val) std::atomic_store<int32_t>(pval, val)
+#define protected_uint32_set(pval, val) std::atomic_store<uint32_t>(pval, val)
+#define protected_int64_set(pval, val) std::atomic_store<int64_t>(pval, val)
+#define protected_uint64_(pval, val) std::atomic_store<uint64_t>(pval, val)
+
 #define protected_int32_adjust(pval, adj) std::atomic_fetch_add<int32_t>(pval, adj)
 #define protected_uint32_adjust(pval, adj) std::atomic_fetch_add<uint32_t>(pval, adj)
 #define protected_int64_adjust(pval, adj) std::atomic_fetch_add<int64_t>(pval, adj)
@@ -200,6 +205,11 @@ typedef _Atomic(uint64_t) protected_uint64_t;
 #define protected_int64_init(pval, val) atomic_init(pval, val)
 #define protected_uint64_init(pval, val) atomic_init(pval, val)
 
+#define protected_int32_set(pval, val) atomic_init(pval, val)
+#define protected_uint32_set(pval, val) atomic_init(pval, val)
+#define protected_int64_set(pval, val) atomic_init(pval, val)
+#define protected_uint64_set(pval, val) atomic_init(pval, val)
+
 #define protected_int32_adjust(pval, adj) atomic_fetch_add(pval, adj)
 #define protected_uint32_adjust(pval, adj) atomic_fetch_add(pval, adj)
 #define protected_int64_adjust(pval, adj) atomic_fetch_add(pval, adj)