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, perhaps

        default:
                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

Reply via email to