#include "asterisk/utils.h"
#include "asterisk/inline_api.h"
Go to the source code of this file.
Data Structures | |
struct | ast_threadstorage |
data for a thread locally stored variable More... | |
Defines | |
#define | AST_THREADSTORAGE(name) AST_THREADSTORAGE_CUSTOM(name, NULL, ast_free_ptr) |
Define a thread storage variable. | |
#define | AST_THREADSTORAGE_CUSTOM(name, c_init, c_cleanup) |
Define a thread storage variable, with custom initialization and cleanup. | |
Functions | |
void * | ast_threadstorage_get (struct ast_threadstorage *ts, size_t init_size) |
Retrieve thread storage. |
Definition in file threadstorage.h.
Define a thread storage variable.
name | The name of the thread storage object |
Example usage:
AST_THREADSTORAGE(my_buf);
Definition at line 81 of file threadstorage.h.
#define AST_THREADSTORAGE_CUSTOM | ( | name, | |||
c_init, | |||||
c_cleanup | ) |
Define a thread storage variable, with custom initialization and cleanup.
name | The name of the thread storage object | |
init | This is a custom function that will be called after each thread specific object is allocated, with the allocated block of memory passed as the argument. | |
cleanup | This is a custom function that will be called instead of ast_free when the thread goes away. Note that if this is used, it *MUST* call free on the allocated memory. |
AST_THREADSTORAGE_CUSTOM(my_buf, my_init, my_cleanup);
Definition at line 101 of file threadstorage.h.
void * ast_threadstorage_get | ( | struct ast_threadstorage * | ts, | |
size_t | init_size | |||
) | [inline] |
Retrieve thread storage.
ts | This is a pointer to the thread storage structure declared by using the AST_THREADSTORAGE macro. If declared with AST_THREADSTORAGE(my_buf), then this argument would be (&my_buf). | |
init_size | This is the amount of space to be allocated the first time this thread requests its data. Thus, this should be the size that the code accessing this thread storage is assuming the size to be. |
AST_THREADSTORAGE(my_buf); #define MY_BUF_SIZE 128 ... void my_func(const char *fmt, ...) { void *buf; if (!(buf = ast_threadstorage_get(&my_buf, MY_BUF_SIZE))) return; ... }
Definition at line 179 of file threadstorage.h.
References ast_calloc, buf, and free.
Referenced by ast_frame_free(), ast_frame_header_new(), ast_frdup(), ast_inet_ntoa(), ast_state2str(), control2str(), curl_internal(), device2str(), dummy_start(), iax_frame_free(), iax_frame_new(), process_sdp(), process_text_line(), and transmit_response_using_temp().