mmap not share
Tue Jun 26 04:42:00 GMT 2001
> > Dirk,
> > This mmap thing is annoying... not only because mmap does not sync
> > but because the cygipc shared memory interface uses mmap to do it's
> > dirtywork... so mmaped files AND shm do not work correctly!!!!
> > This racked my brain for a long while, until I created a workaround...
> > wanted to re-read the mmapped file, I had to unmap, and re-map... I
> > function I called mmap_sync (instead of calling msync, which does not
> > either) and I put the unmap and map again in it... It created a lot of
> > overhead, but it was all I could think of to work around it...
> > I hope I was of some help, and please tell me if you figure it out.
> > Brian
>Brian, have you considered fixing this in cygwin1.dll, not in cygipc?
>That way your workaround would allow everyone access. (I suspect your
>workaround isn't the appropriate fix, but nevertheless)..
My fix is a hack in the application. I conditionally compile the shm gets
and attaches, and add in the mmap calls, and then add the fake sync (where
I unmap and re-map). So, there is no workaround in CygIPC or cygwin1.dll.
I have spent a little bit of time looking through the cygwin source, but
realized this would take a lot of debugging... I solved my problem even
better by putting the reader application as a separate thread, spawned by
the writing thread... all is happy!!!!
BTW, I would have used some other IPC method, other than shared memory or
mmapped files, but the data the apps share is quite large, so serial
communications, such as pipes or sockets would not work for me :)
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
More information about the Cygwin