tests: fix tst-sigwait.cc

I was observing that tst-sigwait was hanging from time to time. As it
turned out, the culprit was concurrent access of non-atomic variable:
siguser2_received. It was set in one thread and read in another like
this:

  while (siguser2_received == 0);

Because this variable is neither volatile nor std::atomic<>, the
compiler can legitimately elide subsequent reads and in fact it checks
the variable only on first access, which leads to infinite loop under
right timing. Here's the assembly for the loop:

    1ec0:   8b 00                   mov    (%rax),%eax
    1ec2:   85 c0                   test   %eax,%eax
    1ec4:   0f 84 e1 01 00 00       je     20ab

    # ... right round, baby, right round
    20ab:   0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)
    20b0:   eb f9                   jmp    20ab

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>