On 21/02/2014, at 11:22 AM, Mike Shal wrote:
>
> Ahh, thanks - I can reproduce it with Sublime Text 3. So somehow when it
> saves the file, it's not updating the ctime (only the mtime). We need to
> check the ctime because 'chmod' only affects the ctime. And I thought all
> other operations that affect mtime also update ctime (eg: 'touch', 'vim', etc
> all modify both ctime+mtime).
>
> I guess we need to check both times somehow on OSX? I'd prefer not to have to
> add another field to the database, but maybe there's a way to do it (like
> using max(ctime, mtime) as the timestamp or something). I'll have to fiddle
> around a bit...
st_ctime Time when file status was last changed (inode data
modification). Changed by the
chmod(2), chown(2), link(2), mknod(2), rename(2),
unlink(2), utimes(2) and
write(2) system calls.
Note: no mention is made of mmap().
Mmap man page says nothing either.
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/mmap.2.html
However Posix does:
http://pubs.opengroup.org/onlinepubs/009695399/functions/mmap.html
The st_ctime and st_mtime fields of a file that is mapped with MAP_SHARED and
PROT_WRITE shall be marked for update at some point in the interval between a
write reference to the mapped region and the next call to msync() with MS_ASYNC
or MS_SYNC for that portion of the file by any process. If there is no such
call and if the underlying file is modified as a result of a write reference,
then these fields shall be marked for update at some time after the write
reference.
So maybe Apple's mmap functions aren't Posix compliant?
--
john skaller
[email protected]
http://felix-lang.org
--
--
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
---
You received this message because you are subscribed to the Google Groups
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.