summaryrefslogtreecommitdiff
path: root/include/my_pthread.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/my_pthread.h')
-rw-r--r--include/my_pthread.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/include/my_pthread.h b/include/my_pthread.h
index 75e016169df..8650ed626c3 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -12,7 +12,7 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
/* Defines to make different thread packages compatible */
@@ -23,6 +23,8 @@
#define ETIME ETIMEDOUT /* For FreeBSD */
#endif
+#include <my_atomic.h>
+
#ifdef __cplusplus
#define EXTERNC extern "C"
extern "C" {
@@ -827,6 +829,26 @@ extern uint thd_lib_detected;
#define statistic_sub(V,C,L) (V)-=(C)
#endif /* SAFE_STATISTICS */
+static inline void thread_safe_increment32(int32 *value)
+{
+ (void) my_atomic_add32_explicit(value, 1, MY_MEMORY_ORDER_RELAXED);
+}
+
+static inline void thread_safe_decrement32(int32 *value)
+{
+ (void) my_atomic_add32_explicit(value, -1, MY_MEMORY_ORDER_RELAXED);
+}
+
+static inline void thread_safe_increment64(int64 *value)
+{
+ (void) my_atomic_add64_explicit(value, 1, MY_MEMORY_ORDER_RELAXED);
+}
+
+static inline void thread_safe_decrement64(int64 *value)
+{
+ (void) my_atomic_add64_explicit(value, -1, MY_MEMORY_ORDER_RELAXED);
+}
+
/*
No locking needed, the counter is owned by the thread
*/