On 09/27/2016 12:17 PM, Oleg Nesterov wrote:
On 09/27, Waiman Long wrote:+static inline int sigequalsets(const sigset_t *set1, const sigset_t *set2) +{ + switch (_NSIG_WORDS) { + case 4: + return (set1->sig[3] == set2->sig[3])&& + (set1->sig[2] == set2->sig[2])&& + (set1->sig[1] == set2->sig[1])&& + (set1->sig[0] == set2->sig[0]); + case 2: + return (set1->sig[1] == set2->sig[1])&& + (set1->sig[0] == set2->sig[0]); + case 1: + return set1->sig[0] == set2->sig[0]; + } + return 0; +} +OK, this memcmp-by-hand matches other sig* helpers. Well, perhapsdefault: BUILD_BUG(); makes sense too, but I won't insist.
We already have a BUILD_BUG() call in sigemptyset(). I don't think we need more than one in any given source file. The memcmp() call will be more efficient for long byte stream. For short one like sigset_t, direct comparison is likely to be faster.
Acked-by: Oleg Nesterov <[email protected]>
Thanks for the review. Cheers, Longman

