summaryrefslogtreecommitdiff
path: root/TSRM/TSRM.h
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2001-07-28 10:46:11 +0000
committerZeev Suraski <zeev@php.net>2001-07-28 10:46:11 +0000
commit633a1c30d115baa6436883ff44fd5abb127e0a7f (patch)
treeec7c704409b6bcde0d8ec2c551bb20866e2e6770 /TSRM/TSRM.h
parentadb1fa5a4cf74be70a517df8414acb418d52d823 (diff)
downloadphp-git-633a1c30d115baa6436883ff44fd5abb127e0a7f.tar.gz
Redesigned thread safety mechanism - nua nua
Diffstat (limited to 'TSRM/TSRM.h')
-rw-r--r--TSRM/TSRM.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h
index 2e6c481d46..9cfc9820e8 100644
--- a/TSRM/TSRM.h
+++ b/TSRM/TSRM.h
@@ -17,6 +17,17 @@
# include "tsrm_config.h"
#endif
+
+#ifdef TSRM_WIN32
+# ifdef TSRM_EXPORTS
+# define TSRM_API __declspec(dllexport)
+# else
+# define TSRM_API __declspec(dllimport)
+# endif
+#else
+# define TSRM_API
+#endif
+
/* Only compile multi-threading functions if we're in ZTS mode */
#ifdef ZTS
@@ -36,17 +47,6 @@
typedef int ts_rsrc_id;
-#ifdef TSRM_WIN32
-# ifdef TSRM_EXPORTS
-# define TSRM_API __declspec(dllexport)
-# else
-# define TSRM_API __declspec(dllimport)
-# endif
-#else
-# define TSRM_API
-#endif
-
-
/* Define THREAD_T and MUTEX_T */
#ifdef TSRM_WIN32
# define THREAD_T DWORD
@@ -115,8 +115,8 @@ TSRM_API void *tsrm_set_new_thread_end_handler(void (*new_thread_end_handler)(TH
#define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1)
#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1)
-#define TSRMLS_FETCH() void ***tsrm_ls = ts_resource_ex(0, NULL)
-#define TSRMG(id, type, element) (((type) (*tsrm_ls)[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
+#define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)
+#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
#define TSRMLS_D void ***tsrm_ls
#define TSRMLS_DC , TSRMLS_D
#define TSRMLS_C tsrm_ls
@@ -126,13 +126,13 @@ TSRM_API void *tsrm_set_new_thread_end_handler(void (*new_thread_end_handler)(TH
}
#endif
-#else
+#else /* non ZTS */
+#define TSRMLS_FETCH()
#define TSRMLS_D
#define TSRMLS_DC
#define TSRMLS_C
#define TSRMLS_CC
-#define TSRMLS_FETCH()
#endif /* ZTS */