[5/6] Optimize sighold implementation
Commit Message
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/sighold.c | 10 ++--------
2 files changed, 4 insertions(+), 8 deletions(-)
Comments
On Fri, Nov 3, 2017 at 5:41 PM Adhemerval Zanella <
adhemerval.zanella@linaro.org> 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).
>
LGtM. Might a similar improvement be possible for sigrelse?
On 05/11/2017 17:15, Zack Weinberg wrote:
>
> On Fri, Nov 3, 2017 at 5:41 PM Adhemerval Zanella <adhemerval.zanella@linaro.org <mailto:adhemerval.zanella@linaro.org>> 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).
>
> LGtM. Might a similar improvement be possible for sigrelse?
Indeed, I will sent it along the patch refactor asked by Joseph on 2/6.
@@ -26,14 +26,8 @@ sighold (int sig)
{
sigset_t set;
- /* Retrieve current signal set. */
- if (__sigprocmask (SIG_SETMASK, NULL, &set) < 0)
- return -1;
-
- /* Add the specified signal. */
+ sigemptyset (&set);
if (sigaddset (&set, sig) < 0)
return -1;
-
- /* Set the new mask. */
- return __sigprocmask (SIG_SETMASK, &set, NULL);
+ return __sigprocmask (SIG_BLOCK, &set, NULL);
}