8 Feb
2012
8 Feb
'12
2:25 a.m.
On Sat, Feb 4, 2012 at 7:33 AM, Raymond Toy <toy.raymond@gmail.com> wrote:
So previously, the code was copying 32 bytes? That seems like too much too.
Yes. The structure assignment of the pending mask back to the ucontext would copy 32-bytes instead of 8-bytes. context->uc_sigmask = pending_mask; I did not correctly recall the root cause. The problem was a disagreement over the size of sigset_t between glibc and the kernel. The glibc definition is a 32-byte bit set. http://repo.or.cz/w/glibc.git/blob?f=sysdeps/unix/sysv/linux/bits/sigset.h
NSIG is 65 on an Ubuntu 10 system. It's also 65 on my OpenSuSE 11.3 system that I normally use to build cmucl.
Yes, those numbers seem okay. NSIG is sized correctly. sigset_t is not.