All of lore.kernel.org
 help / color / mirror / Atom feed
From: chrubis@suse.cz
To: Alexey Kodanev <alexey.kodanev@oracle.com>
Cc: vasily.isaenko@oracle.com, ltp-list@lists.sourceforge.net
Subject: Re: [LTP] [PATCH v3] lib/test.h: add macro to declare init/cleanup functions
Date: Tue, 25 Feb 2014 14:17:39 +0100	[thread overview]
Message-ID: <20140225131738.GA13201@rei> (raw)
In-Reply-To: <1392732510-25892-1-git-send-email-alexey.kodanev@oracle.com>

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 <alexey.kodanev@oracle.com>
> ---
>  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
chrubis@suse.cz

------------------------------------------------------------------------------
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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  reply	other threads:[~2014-02-25 13:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-18 14:08 [LTP] [PATCH v3] lib/test.h: add macro to declare init/cleanup functions Alexey Kodanev
2014-02-25 13:17 ` chrubis [this message]
     [not found]   ` <530C9E61.5080009@oracle.com>
2014-02-25 14:10     ` chrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140225131738.GA13201@rei \
    --to=chrubis@suse.cz \
    --cc=alexey.kodanev@oracle.com \
    --cc=ltp-list@lists.sourceforge.net \
    --cc=vasily.isaenko@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.