sigqueue/pthread_sigqueue: cleanup.

Remove the explicit memset() from one of the two callers, and use explicit initialization for both. This makes it clearer that optimizing the zeroing of the rest of the struct is the compiler's problem, not ours.

Add the "missing" assignment to si_signo in pthread_sigqueue() that isn't actually necessary because the kernel will overwrite that field anyway when it copies from userspace, but which looked like a bug given the difference between the sigqueue() and pthread_sigqueue() implementations.

Also reuse the result of getpid() in pthread_sigqueue() rather than calling it twice.

Change-Id: I39578d80ddc5edcb7d235b078392e20f35713dba
diff --git a/libc/bionic/signal.cpp b/libc/bionic/signal.cpp
index 2cf9940..5979ed7 100644
--- a/libc/bionic/signal.cpp
+++ b/libc/bionic/signal.cpp
@@ -219,10 +219,8 @@
 }
 
 int sigqueue(pid_t pid, int sig, const sigval value) {
-  siginfo_t info;
-  memset(&info, 0, sizeof(siginfo_t));
+  siginfo_t info = { .si_code = SI_QUEUE };
   info.si_signo = sig;
-  info.si_code = SI_QUEUE;
   info.si_pid = getpid();
   info.si_uid = getuid();
   info.si_value = value;