Mail Archives: cygwin/2009/03/31/06:41:43
Hi,
I am using shmget()/shmat() methods for getting the shared memory.
I had tried running the same program which is given in the previous
mention thread, the results are same as mentioned over there.
I think it would tough to modify the shmget/shmat calls to mmap for my
application.
I believe V 1.7 is a Beta release, Can I know when the Official release wil=
l be?
Cheers,
Suresh Kumar.
On Tue, Mar 31, 2009 at 4:51 PM, Corinna Vinschen
<corinna-cygwin AT cygwin DOT com> wrote:
> On Mar 31 15:04, Yarlagadda Suresh wrote:
>> Hi,
>>
>> I am using CYGWIN V 1.5.25-15 on Windows 2008 Standard Server Edition wi=
th SP1.
>>
>> I have a program which does the following :
>>
>> 1. The main process gets shared memory, opens an index file (through
>> Btrieve API).
>
> How does it get shared memory? =A0Does it use mmap() or does it use
> shmget()/shmat()? =A0I assume the latter, since you're talking about IPC.
>
>> 2. If a record is found in the index file,the main process forks a child
>> =A0 =A0 and the child process reads the index file and process the data.
>>
>> The program fails on the above system configuration giving the following=
error:
>>
>> =A0 =A0 =A0 *** fatal error - MapViewOfFileEx (0x3D0000), Win32 error 48=
7.
>> Terminating.
>
> This is probably not quite the same problem the thread from 2005 refers
> to, even though the result looks pretty much identical.
>
> I remember that I changed the mmap() implementation to allocate shared
> memory from the OS using the MEM_TOP_DOWN flag when Vista came out. =A0The
> reason was that on Vista there was a very high probability that the
> memory region requested without that flag would collide with a DLL
> loaded into memory at this address. =A0I did not change the way the memory
> region is allocated =A0for shmget(), though.
>
> Heading straight to a Cygwin 1.7 release, we won't change Cygwin 1.5.25
> anymore, though. =A0You have three choices:
>
> - Check if mmap() doesn't already do what you need, rather than using
> =A0shmget()/shmat(). =A0It would also allow to run your application witho=
ut
> =A0having to run cygserver.
>
> - Install a Cygwin 1.7 test release[1] and see if it fixes your problem
> =A0already. =A0If not, I have an idea what to change.
>
>
> Corinna
>
>
> [1] http://cygwin.com/ml/cygwin-announce/2009-03/msg00087.html
>
> --
> Corinna Vinschen =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Please, send mails re=
garding Cygwin to
> Cygwin Project Co-Leader =A0 =A0 =A0 =A0 =A0cygwin AT cygwin DOT com
> Red Hat
>
> --
> Unsubscribe info: =A0 =A0 =A0http://cygwin.com/ml/#unsubscribe-simple
> Problem reports: =A0 =A0 =A0 http://cygwin.com/problems.html
> Documentation: =A0 =A0 =A0 =A0 http://cygwin.com/docs.html
> FAQ: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 http://cygwin.com/faq/
>
>
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -