summaryrefslogtreecommitdiff
path: root/op.h
diff options
context:
space:
mode:
Diffstat (limited to 'op.h')
-rw-r--r--op.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/op.h b/op.h
index c9ec2df6f0..da03aa46db 100644
--- a/op.h
+++ b/op.h
@@ -401,3 +401,20 @@ struct loop {
#define OA_SCALARREF 7
#define OA_OPTIONAL 8
+#ifdef USE_ITHREADS
+# define OP_REFCNT_INIT MUTEX_INIT(&PL_op_mutex)
+# define OP_REFCNT_LOCK MUTEX_LOCK(&PL_op_mutex)
+# define OP_REFCNT_UNLOCK MUTEX_UNLOCK(&PL_op_mutex)
+# define OP_REFCNT_TERM MUTEX_DESTROY(&PL_op_mutex)
+# define OpREFCNT_set(o,n) ((o)->op_targ = (n))
+# define OpREFCNT_inc(o) ((o) ? (++(o)->op_targ, (o)) : Nullop)
+# define OpREFCNT_dec(o) (--(o)->op_targ)
+#else
+# define OP_REFCNT_INIT NOOP
+# define OP_REFCNT_LOCK NOOP
+# define OP_REFCNT_UNLOCK NOOP
+# define OP_REFCNT_TERM NOOP
+# define OpREFCNT_set(o,n) NOOP
+# define OpREFCNT_inc(o) (o)
+# define OpREFCNT_dec(o) 0
+#endif