[racket-dev] online check syntax deadlock: can you help?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Sep 2 08:29:55 EDT 2011

At Thu, 1 Sep 2011 15:20:27 -0700, John Clements wrote:
> > Note that the code ignores the result of `TransformProcessType', which
> > is a bad idea. If you remove the `void' wrapper, what number result
> > gets printed on your machine?
> > 
> Looks like it's -50.

-50 means "bad argument".

Apple's docs say

 struct ProcessSerialNumber {
   unsigned long highLongOfPSN;
   unsigned long lowLongOfPSN;

but "MacTypes.h" says

 struct ProcessSerialNumber {
   UInt32              highLongOfPSN;
   UInt32              lowLongOfPSN;

and those aren't the same on a 64-bit system. Maybe the docs that I
found are too old or are only meant to apply to 32-bit systems.

Can you remind me whether you're using a 32-bit or 64-bit build?

When I try the 64-bit build, then it fails in the way you describe
until I fix the `_ProcessSerialNumber' declaration:

 (define-cstruct _ProcessSerialNumber
   ([highLongOfPSN _uint32]
    [lowLongOfPSN _uint32]))

Posted on the dev mailing list.