CV * xcv_outside;
#ifdef USE_THREADS
perl_mutex *xcv_mutexp;
- struct thread *xcv_owner; /* current owner thread */
+ struct perl_thread *xcv_owner; /* current owner thread */
#endif /* USE_THREADS */
cv_flags_t xcv_flags;
};
#define CVf_NODEBUG 0x0020 /* no DB::sub indirection for this CV
(esp. useful for special XSUBs) */
#define CVf_METHOD 0x0040 /* CV is explicitly marked as a method */
-#define CVf_LOCKED 0x0080 /* CV locks itself or first arg on entry */
+#define CVf_LOCKED 0x0080 /* CV locks itself, package or first arg on entry */
+#define CVf_PACKAGE 0x0100 /* CV locks package on entry */
#define CvCLONE(cv) (CvFLAGS(cv) & CVf_CLONE)
#define CvCLONE_on(cv) (CvFLAGS(cv) |= CVf_CLONE)
#define CvLOCKED(cv) (CvFLAGS(cv) & CVf_LOCKED)
#define CvLOCKED_on(cv) (CvFLAGS(cv) |= CVf_LOCKED)
#define CvLOCKED_off(cv) (CvFLAGS(cv) &= ~CVf_LOCKED)
+
+#define CvPACKAGE(cv) (CvFLAGS(cv) & CVf_PACKAGE)
+#define CvPACKAGE_on(cv) (CvFLAGS(cv) |= CVf_PACKAGE)
+#define CvPACKAGE_off(cv) (CvFLAGS(cv) &= ~CVf_PACKAGE)
+