[cmucl-imp] gc & blocked signals

Carl Shapiro carl.shapiro at gmail.com
Wed Feb 8 02:25:06 UTC 2012


On Sat, Feb 4, 2012 at 7:33 AM, Raymond Toy <toy.raymond at 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.


More information about the cmucl-imp mailing list