From: Sterling Hughes Date: Sun, 27 Apr 2003 21:57:07 +0000 (+0000) Subject: add TSRMLS_FETCH_CTX which allows you to map a variable to a ts context. X-Git-Tag: SPL_ALPHA~47 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a294f9b2d14cdee24123e57cda497abc356203ec;p=php add TSRMLS_FETCH_CTX which allows you to map a variable to a ts context. This is useful when you are mapping callbacks, you can simply associate a struct member to a thread context: void mycallback(my_struct *user) { TSRMLS_FETCH_CTX(user->thread_ctx); } --- diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h index 0fcd5c221a..888d5ff78b 100644 --- a/TSRM/TSRM.h +++ b/TSRM/TSRM.h @@ -149,6 +149,7 @@ TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread #define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1) #define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL) +#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx #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