Hi!
> Macro to use for making functions called only once in multi-threaded
> tests such as init or cleanup function.
> 
> Signed-off-by: Alexey Kodanev <[email protected]>
> ---
>  include/test.h |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/include/test.h b/include/test.h
> index d46fdbf..78f13c2 100644
> --- a/include/test.h
> +++ b/include/test.h
> @@ -111,6 +111,21 @@ pid_t tst_vfork(void);
>  #endif
>  
>  /*
> + * Macro to use for making functions called only once in
> + * multi-threaded tests such as init or cleanup function.
> + * The first call to @name_fn function by any thread shall
> + * call the @exec_fn. Subsequent calls shall not call @exec_fn.
> + * *_fn functions must not take any arguments.
> + */
> +#define DECLARE_ONCE_FN(name_fn, exec_fn)                            \
> +     void name_fn(void)                                              \
> +     {                                                               \
> +             static pthread_once_t name_fn##_ex = PTHREAD_ONCE_INIT; \
> +             pthread_once(&name_fn##_ex, exec_fn);                   \
> +     }
> +
> +
> +/*
>   * lib/forker.c
>   */
>  extern int Forker_pids[];

This is fine, although I would rather prefix the macro name with TST_ or
LTP_ and once the pthread_once_t variable is hidden from the global
namespace we don't have to prefix it with name_fn.

If you are OK with these changes, I can commit modified version right
away ;).

-- 
Cyril Hrubis
[email protected]

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to