diff options
author | Abhijit Menon-Sen <ams@wiw.org> | 2001-09-22 16:21:05 +0000 |
---|---|---|
committer | Abhijit Menon-Sen <ams@wiw.org> | 2001-09-22 16:21:05 +0000 |
commit | 0776ebf09c58b6dd41e996945495d82168d1a73e (patch) | |
tree | 1bd3bd22da4c8e6eac3117014ca04167380dae59 /sharedsv.h | |
parent | f758ef9571e52071ed804bfcc93b7c278260ff68 (diff) | |
download | perl-0776ebf09c58b6dd41e996945495d82168d1a73e.tar.gz |
More cleanups. (What's PERL_DECL_PROT?)
p4raw-id: //depot/perl@12137
Diffstat (limited to 'sharedsv.h')
-rw-r--r-- | sharedsv.h | 48 |
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 */ - |