]> granicus.if.org Git - php/commitdiff
add TSRMLS_FETCH_CTX which allows you to map a variable to a ts context.
authorSterling Hughes <sterling@php.net>
Sun, 27 Apr 2003 21:57:07 +0000 (21:57 +0000)
committerSterling Hughes <sterling@php.net>
Sun, 27 Apr 2003 21:57:07 +0000 (21:57 +0000)
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);
}

TSRM/TSRM.h

index 0fcd5c221a81175dc21658269b62cf0787f6a062..888d5ff78bca83b8b122ebaa9692f20d6ec8158c 100644 (file)
@@ -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