From: Yakov Lerner Date: Mon, 08 May 2006 10:58:00 GMT Subject: Re: [patch] munmap-before-rename, cygwin need Message-ID: In-Reply-To: <7vslnlk04v.fsf@assigned-by-dhcp.cox.net> On 5/8/06, Junio C Hamano wrote: > "Yakov Lerner" writes: > > > I found that mmap() works on cygwin, but needs a patch. > > On Cygwin, rename() fails if target file has active mmap(). > > The patch below adds munmap() before rename(). > > This is interesting in three counts. > > - I from time to time test Cygwin version on my day-job machine > (W2K) and my wife's machine (XP); on both machines I usually > have less than two weeks old Cygwin installation, and I have > not seen the breakage. I wonder how reproducible this is. > Also previously people reported mmap() works for some and > fake mmap is needed for others. Would this patch make things > work for everybody? > > - The part you patched is commit_index_file(). This typically > is called just before program exit, but some callers, like > apply.c, may want to still look at the index after calling > it, fully aware that the changes after commit_index will not > be written out. Although I haven't traced the codepath fully > in apply.c yet, unmapping would break the access to the index > (i.e. active_cache[]). Does apply still work with your > patch? I am checking this. I am trying different options and different scenarios. Yakov