|
From: | Bob Bramwell |
Subject: | QNX subprocess bug |
Date: | Sat, 25 Mar 2006 05:34:04 +0000 (GMT) |
User-agent: | Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20041221 |
The bug is showing up in emacs 21.2.1 on QNX 6.3.0. It appears that process IDs on QNX really occupy 32-bits. Some of them are quite large. This causes a problem in the subprocess package which uses an elisp integer (28 bits + type info - I think) to try to store the PID. An added complication is that there is a cheap-and-cheerful "just stuff this value into this elisp int" macro which (in this case) has the effect of clobbering the type bits, ultimately resulting in what appears to be a garbage collector infinite recursion crash.
Obvious this problem could, in principle, arise on any system that uses 32-bit process IDs, and it seems to me rather sloppy programming to use such a shortcut, especially in such comparatively rarely executed code.
It looks as though there ought to be some way to rewrite the code with the integer represented as a kind of indirect object, but I don't feel qualified to do this without consulting The Experts. Anyone wish to provide some guidance? I will gladly fix the problem given a few pointers.
[Prev in Thread] | Current Thread | [Next in Thread] |