[ltt-dev] [UST PATCH] remove duplicate return

Mathieu Desnoyers compudj at krystal.dyndns.org
Sun Sep 5 20:49:07 EDT 2010


* Douglas Santos (douglas.santos at polymtl.ca) wrote:
> ---
>  libustcmd/ustcmd.c |    5 -----
>  1 files changed, 0 insertions(+), 5 deletions(-)
> 
> diff --git a/libustcmd/ustcmd.c b/libustcmd/ustcmd.c
> index cf6b9d7..825a649 100644
> --- a/libustcmd/ustcmd.c
> +++ b/libustcmd/ustcmd.c
> @@ -381,11 +381,6 @@ int ustcmd_get_cmsf(struct marker_status **cmsf, const pid_t pid)
>  		return -1;
>  	}
>  
> -	if (result != 1) {
> -		ERR("error while getting markers list");
> -		return -1;
> -	}

Looks good, so

Acked-by Mathieu Desnoyers <mathieu.desnoyers at efficios.com>

but why on earth is ustcomm_send_request() returning:

/*
 * Return value:
 *   0: Success, but no reply because recv() returned 0
 *   1: Success
 *   -1: Error
 *
 * On error, the error message is printed, except on
 * ECONNRESET, which is normal when the application dies.
 */

Typical return values everywhere else in the project, in the Linux
kernel, and in libs are:

0: success
negative: errors.
positive: used for a quantity counter

So for ustcomm_send_request(), I recommend to remap the "return 0" to
"return -ENODATA".  And to remap "return 1" to return 0, and update all
callers to test for if (ret < 0) rather than if (ret != 1).

If you ever need inspiration for error values, please refer to 
/usr/include/asm-generic/errno-base.h and
/usr/include/asm-generic/errno.h

Thanks,

Mathieu


> -
>  	tmp_cmsf = (struct marker_status *) malloc(sizeof(struct marker_status) *
>  		(ustcmd_count_nl(big_str) + 1));
>  	if (tmp_cmsf == NULL) {
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list