summaryrefslogtreecommitdiff
path: root/sharedsv.h
diff options
context:
space:
mode:
authorAbhijit Menon-Sen <ams@wiw.org>2001-09-22 16:21:05 +0000
committerAbhijit Menon-Sen <ams@wiw.org>2001-09-22 16:21:05 +0000
commit0776ebf09c58b6dd41e996945495d82168d1a73e (patch)
tree1bd3bd22da4c8e6eac3117014ca04167380dae59 /sharedsv.h
parentf758ef9571e52071ed804bfcc93b7c278260ff68 (diff)
downloadperl-0776ebf09c58b6dd41e996945495d82168d1a73e.tar.gz
More cleanups. (What's PERL_DECL_PROT?)
p4raw-id: //depot/perl@12137
Diffstat (limited to 'sharedsv.h')
-rw-r--r--sharedsv.h48
1 files changed, 19 insertions, 29 deletions
diff --git a/sharedsv.h b/sharedsv.h
index bba2210e7f..5a55be632f 100644
--- a/sharedsv.h
+++ b/sharedsv.h
@@ -1,38 +1,28 @@
-
#ifdef USE_ITHREADS
typedef struct {
- SV* sv; /* The actual data */
- perl_mutex mutex; /* Our mutex */
- perl_cond cond; /* Our condition variable */
- perl_cond user_cond; /* For user level conditions */
- IV locks; /* Number of locks held */
- PerlInterpreter* owner; /* who owns the lock */
+ SV *sv; /* The actual SV */
+ perl_mutex mutex; /* Our mutex */
+ perl_cond cond; /* Our condition variable */
+ perl_cond user_cond; /* For user-level conditions */
+ IV locks; /* Number of locks held */
+ PerlInterpreter *owner; /* Who owns the lock? */
} shared_sv;
+#define SHAREDSvGET(a) (a->sv)
+#define SHAREDSvLOCK(a) Perl_sharedsv_lock(aTHX_ a)
+#define SHAREDSvUNLOCK(a) Perl_sharedsv_unlock(aTHX_ a)
+#define SHAREDSvEDIT(a) STMT_START { \
+ MUTEX_LOCK(&PL_sharedsv_space_mutex); \
+ SHAREDSvLOCK((a)); \
+ PERL_SET_CONTEXT(PL_sharedsv_space); \
+ } STMT_END
-void Perl_sharedsv_unlock_scope(pTHX_ shared_sv* ssv);
-void Perl_sharedsv_unlock(pTHX_ shared_sv* ssv);
-void Perl_sharedsv_lock(pTHX_ shared_sv* ssv);
-void Perl_sharedsv_init(pTHX);
-shared_sv* Perl_sharedsv_new(pTHX);
-shared_sv* Perl_sharedsv_find(pTHX_ SV* sv);
-void Perl_sharedsv_thrcnt_inc(pTHX_ shared_sv* ssv);
-void Perl_sharedsv_thrcnt_dec(pTHX_ shared_sv* ssv);
-
-
-#define SHAREDSvGET(a) (a->sv)
-#define SHAREDSvEDIT(a) { MUTEX_LOCK(&PL_sharedsv_space_mutex);\
-SHAREDSvLOCK((a));\
-PERL_SET_CONTEXT(PL_sharedsv_space);\
-}
-#define SHAREDSvRELEASE(a) { PERL_SET_CONTEXT((a)->owner);\
-SHAREDSvUNLOCK((a));\
-MUTEX_UNLOCK(&PL_sharedsv_space_mutex);\
-}
-#define SHAREDSvLOCK(a) Perl_sharedsv_lock(aTHX_ a)
-#define SHAREDSvUNLOCK(a) Perl_sharedsv_unlock(aTHX_ a)
+#define SHAREDSvRELEASE(a) STMT_START { \
+ PERL_SET_CONTEXT((a)->owner); \
+ SHAREDSvUNLOCK((a)); \
+ MUTEX_UNLOCK(&PL_sharedsv_space_mutex); \
+ } STMT_END
#endif /* USE_ITHREADS */
-