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);
}
This commit is contained in:
Sterling Hughes 2003-04-27 21:57:07 +00:00
parent 8820a9cdcc
commit a294f9b2d1

View 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