I see,

The shmem.c implementation I am using returns the OS/2 memory ID which
also happens to be the base address of the allocated memory. 

Bug in shmem.c code then

Thanks

Lorne

In <[EMAIL PROTECTED]>, on 12/31/04 
   at 03:53 PM, Tom Lane <[EMAIL PROTECTED]> said:

>[EMAIL PROTECTED] writes:
>> I am using the sysv_shmem.c shared memory allocation api for os/2 and I
>> ran into a problem when OS/2 allocates shared memory over the 2 gigabyte
>> address boundary.

>> The existing sysv_shmem.c tests for the return address of the segment as
>> less than 0 and determines that a negative indicates an error.

>shmget returns an ID, not an address.  I quote from the Single Unix Spec:

>  Upon successful completion, shmget() returns a non-negative integer,
>                                                 ^^^^^^^^^^^^
>  namely a shared memory identifier; otherwise, it returns -1 and errno
>  will be set to indicate the error.

>While your change might be harmless, it should not be necessary, and it
>certainly shouldn't have anything to do with 2gig address boundaries.

>                       regards, tom lane

-- 
-----------------------------------------------------------
[EMAIL PROTECTED]
-----------------------------------------------------------


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to