tls-compat.h   tls-compat.h 
skipping to change at line 50 skipping to change at line 50
* *
* Answer: Use typedef to assign a type_name to the compound type. * Answer: Use typedef to assign a type_name to the compound type.
* Example: Define a TLS variable which is an int array with len=4: * Example: Define a TLS variable which is an int array with len=4:
* *
* typedef int my_int_array_type[4]; * typedef int my_int_array_type[4];
* DEFINE_URCU_TLS(my_int_array_type, var_name); * DEFINE_URCU_TLS(my_int_array_type, var_name);
* *
* Another exmaple: * Another exmaple:
* typedef void (*call_rcu_flavor)(struct rcu_head *, XXXX); * typedef void (*call_rcu_flavor)(struct rcu_head *, XXXX);
* DECLARE_URCU_TLS(call_rcu_flavor, p_call_rcu); * DECLARE_URCU_TLS(call_rcu_flavor, p_call_rcu);
*
* NOTE: URCU_TLS() is NOT async-signal-safe, you can't use it
* inside any function which can be called from signal handler.
*
* But if pthread_getspecific() is async-signal-safe in your
* platform, you can make URCU_TLS() async-signal-safe via:
* ensuring the first call to URCU_TLS() of a given TLS variable of
* all threads is called earliest from a non-signal handler function.
*
* Example: In any thread, the first call of URCU_TLS(rcu_reader)
* is called from rcu_register_thread(), so we can ensure all later
* URCU_TLS(rcu_reader) in any thread is async-signal-safe.
*
* Moreover, URCU_TLS variables should not be touched from signal
* handlers setup with with sigaltstack(2).
*/ */
# define DECLARE_URCU_TLS(type, name) \ # define DECLARE_URCU_TLS(type, name) \
CONFIG_RCU_TLS type name CONFIG_RCU_TLS type name
# define DEFINE_URCU_TLS(type, name) \ # define DEFINE_URCU_TLS(type, name) \
CONFIG_RCU_TLS type name CONFIG_RCU_TLS type name
# define URCU_TLS(name) (name) # define URCU_TLS(name) (name)
 End of changes. 1 change blocks. 
0 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/