[Linux-cluster] [PATCH 0/4] fence

Lon Hohberger lhh at redhat.com
Fri Feb 18 18:28:47 UTC 2005


On Fri, 2005-02-18 at 12:01 +0800, David Teigland wrote:

> For reference, existing:
> 
> #define die(fmt, args...) \
> do \
> { \
> 	fprintf(stderr, "%s: ", prog_name); \
> 	fprintf(stderr, fmt "\n", ##args); \
> 	syslog(LOG_ERR, fmt, ##args); \
> 	exit(EXIT_FAILURE); \
> } \
> while (0)
> 
> patch does:
> 
> static inline void die(const char *fmt, ...)
> {
> 	va_list ap;
> 	fputs(prog_name, stderr);
> 	fputs(": ", stderr);
> 	va_start(ap, fmt);
> 	vfprintf(stderr, fmt, ap);
> 	fputs("\n", stderr);
> 	vsyslog(LOG_ERR, fmt, ap);
> 	va_end(ap);
> 	exit(EXIT_FAILURE);
> }

Note: Specifying inline doesn't always guarantee that inlining will
occur.  In fact, you can't inline a function with variable length
arguments with GCC...

http://gcc.gnu.org/onlinedocs/gcc/Inline.html

-- Lon




More information about the Linux-cluster mailing list