-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