]> git.cameronkatri.com Git - cgit.git/commit
Don't truncate valid cachefiles
authorLars Hjemli <hjemli@gmail.com>
Mon, 11 Dec 2006 21:53:50 +0000 (22:53 +0100)
committerLars Hjemli <hjemli@gmail.com>
Mon, 11 Dec 2006 21:53:50 +0000 (22:53 +0100)
commitfbaf1171b4e343929dd43ecac7cd9d1c692b84ec
tree40b7007b2e1e85f2e91e052b33555df2e9fb5e14
parent44923f8953c66dc9b852316b655ab3b5aec9478e
Don't truncate valid cachefiles

An embarrassing thinko in cgit_check_cache() would truncate valid cachefiles
in the following situation:
  1) process A notices a missing/expired cachefile
  2) process B gets scheduled, locks, fills and unlocks the cachefile
  3) process A gets scheduled, locks the cachefile, notices that the cachefile
     now exist/is not expired anymore, and continues to overwrite it with an
     empty lockfile.

Thanks to Linus for noticing (again).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cache.c
cgit.c
cgit.h