Re: gc & blocked signals

Carl Shapiro <[email protected]> Fri, 3 Feb 2012 16:47:46 -0800
Newsgroups gmane.lisp.cmucl.devel
Message-ID <CANVK_Qi2DP8tFGhH62CB=GsGD_pAQTNLqNs+mMrcbjrof15Sdg@mail.gmail.com>
On Fri, Feb 3, 2012 at 9:15 AM, Raymond Toy <[email protected]> wrote:
> NSIG = 65 and LONG_BIT = 32 on my machine, so memcpy only copies 2 bytes.
> I think we really want to copy at least 64 bits or 8 bytes.  If I modify
> this code to copy 8 bytes, SigBlk is now 0 after returning, and C-c
> continues to work.

This looks like my fault

http://common-lisp.net/gitweb?p=projects/cmucl/cmucl.git;a=commit;h=342beebbfed6718f0bbc4276f29a18d0f7356ec8

LONG_BIT should have been CHAR_BIT.

I am surprised that the C library NSIG is now 65.  When I made this
change, the C library on the machine I used defined NSIG as 1024 but
the kernel data structure knew it was 64.  For example, compare

http://lxr.linux.no/#linux+v3.2.4/arch/x86/include/asm/signal.h

with

http://fxr.watson.org/fxr/source/sysdeps/unix/sysv/linux/bits/signum.h?v=GLIBC27#L69

Using the wrong definition of NSIG may cause a corruption.
_______________________________________________
cmucl-imp mailing list
[email protected]
http://lists.zs64.net/mailman/listinfo/cmucl-imp