This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2 8/8] Optimize sigrelse implementation


If nobody opposes it I will commit this shortly.

On 06/11/2017 11:37, Adhemerval Zanella wrote:
> This patch simplifies sighold a bit by removing an extra sigprocmask
> and using SIG_BLOCK (which union of the current set and the set argument).
> 
> Checked on x86_64-linux-gnu.
> 
> 	* signal/sighold.c (sighold): Optimize implementation.
> 
> Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
>  ChangeLog         |  2 ++
>  signal/sigrelse.c | 12 +++---------
>  2 files changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/signal/sigrelse.c b/signal/sigrelse.c
> index e41c2bd..61f240b 100644
> --- a/signal/sigrelse.c
> +++ b/signal/sigrelse.c
> @@ -26,14 +26,8 @@ sigrelse (int sig)
>  {
>    sigset_t set;
>  
> -  /* Retrieve current signal set.  */
> -  if (__sigprocmask (SIG_SETMASK, NULL, &set) < 0)
> +  sigemptyset (&set);
> +  if (sigaddset (&set, sig) < 0)
>      return -1;
> -
> -  /* Remove the specified signal.  */
> -  if (sigdelset (&set, sig) < 0)
> -    return -1;
> -
> -  /* Set the new mask.  */
> -  return __sigprocmask (SIG_SETMASK, &set, NULL);
> +  return __sigprocmask (SIG_UNBLOCK, &set, NULL);
>  }
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]