Cygwin issues: modify-window and hangs

jw schultz jw at pegasys.ws
Fri Jan 31 23:08:09 EST 2003


On Fri, Jan 31, 2003 at 12:09:14PM +0100, Lapo Luchini wrote:
> Max Bowsher wrote:
> 
> >Unless someone feels like making a FAT-detection patch, the previous status
> >quo looks to me like the best option.
> >
> Would "creating a file in the same dir" be "too invasive"?
> Of course this would only solve the problem if one file is 
> created/tested "per directory"...
> I guess cygwin HAS a call to examine the mount table and to try directly 
> "one file per mount", but the root of the mount could be non writeable.
> Mhh. Not so easy as a patch as I first thought.
> 
> Will check ASAP.

I don't think creating a file on the receiver would be too
invasive.  Just clunky.  I assume you are thinking of
setting mtime to an odd value and see if it remains the same
or is rounded.  Doing this once per directory would be
insane.  I don't much like the idea but maybe do it for each
file...

	static dev_t prev_dev = 0;
	static int fs_1second = 1;

		if (cmp_modtime(st->st_mtime,file->modtime) == 0) {
			return 0;
		}

		if (!(file->modtime - st->st_mtime == 1 || file->modtime & 1)) {
			return 1;
		}

# does st_dev represent anything meaningful on cygwin?
# if not use dirname(fname) and strcmp(ewww!)
		if (prev_dev != st->st_dev) {
			prev_dev = st->st_dev;
			fs_1second = test_fs_1second(fname);
		}
		return fs_1second;
		
		
yuck!  I feel icky typing it, but it would work.  So you
know, this would replace the current cmp_modtime line in
skip_file().  The only thing it favor of this is that it
would exactly cover the FAT or FAT over samba receiver case
with no detectable false negatives.

-- 
________________________________________________________________
	J.W. Schultz            Pegasystems Technologies
	email address:		jw at pegasys.ws

		Remember Cernan and Schmitt


More information about the rsync mailing list