#ディレクトリ階層からファイルのパスとサイズを列挙
bbb 100
ccc 200
ddd 100
eee 30000
fff 200
ggg 100
hhh 100
iii 100
#サイズでソートして同サイズがあるものを抽出(eee除外)
bbb 100
ddd 100
ggg 100
hhh 100
iii 100
ccc 200
fff 200
#ハッシュ計算
bbb 100 A00000
ddd 100 B00000
ggg 100 A00000
hhh 100 B00000
iii 100 A00000
ccc 200 C12346
fff 200 D23456
#サイズとハッシュでソートして同値があるものを抽出(ccc,fff除外)
bbb 100 A00000
ggg 100 A00000
iii 100 A00000
ddd 100 B00000
hhh 100 B00000
"上記処理後、外部プロセスによりgggの一部が変更されたとする"
#重複の集合毎にロックして、再度ハッシュ計算(もしくは完全比較)して削除
bbb,ggg,iiiをロック(排他open)
重複再チェック
再計算後のgggのハッシュ(もしくは完全比較で)不一致のため処理から除外(close)
iiiを削除
bbbをアンロック(close)
ddd,hhhをロック
重複再チェック
hhh削除
dddをアンロック
I+ODh+OCo+ODrOOCr+ODiOODqumajuWxpOOBi+OCieODleOCoeOCpOODq+OBruODkeOCueOBqOOCteOCpOOCuuOCkuWIl+aMmQrjgIBiYmIgMTAwCuOAgGNjYyAyMDAK44CAZGRkIDEwMArjgIBlZWUgMzAwMDAK44CAZmZmIDIwMArjgIBnZ2cgMTAwCuOAgGhoaCAxMDAK44CAaWlpIDEwMAoj44K144Kk44K644Gn44K944O844OI44GX44Gm5ZCM44K144Kk44K644GM44GC44KL44KC44Gu44KS5oq95Ye6KGVlZemZpOWklikK44CAYmJiIDEwMArjgIBkZGQgMTAwCuOAgGdnZyAxMDAK44CAaGhoIDEwMArjgIBpaWkgMTAwCuOAgGNjYyAyMDAK44CAZmZmIDIwMAoj44OP44OD44K344Ol6KiI566XCuOAgGJiYiAxMDAgQTAwMDAwCuOAgGRkZCAxMDAgQjAwMDAwCuOAgGdnZyAxMDAgQTAwMDAwCuOAgGhoaCAxMDAgQjAwMDAwCuOAgGlpaSAxMDAgQTAwMDAwCuOAgGNjYyAyMDAgQzEyMzQ2CuOAgGZmZiAyMDAgRDIzNDU2CiPjgrXjgqTjgrrjgajjg4/jg4Pjgrfjg6Xjgafjgr3jg7zjg4jjgZfjgablkIzlgKTjgYzjgYLjgovjgoLjga7jgpLmir3lh7ooY2NjLGZmZumZpOWklikK44CAYmJiIDEwMCBBMDAwMDAK44CAZ2dnIDEwMCBBMDAwMDAK44CAaWlpIDEwMCBBMDAwMDAK44CAZGRkIDEwMCBCMDAwMDAK44CAaGhoIDEwMCBCMDAwMDAKIuS4iuiomOWHpueQhuW+jOOAgeWklumDqOODl+ODreOCu+OCueOBq+OCiOOCimdnZ+OBruS4gOmDqOOBjOWkieabtOOBleOCjOOBn+OBqOOBmeOCiyIKI+mHjeikh+OBrumbhuWQiOavjuOBq+ODreODg+OCr+OBl+OBpuOAgeWGjeW6puODj+ODg+OCt+ODpeioiOeulyjjgoLjgZfjgY/jga/lrozlhajmr5TovIMp44GX44Gm5YmK6ZmkCuOAgGJiYixnZ2csaWlp44KS44Ot44OD44KvKOaOkuS7lm9wZW4pCuOAgOmHjeikh+WGjeODgeOCp+ODg+OCrwrjgIDjgIDlho3oqIjnrpflvozjga5nZ2fjga7jg4/jg4Pjgrfjg6Uo44KC44GX44GP44Gv5a6M5YWo5q+U6LyD44GnKeS4jeS4gOiHtOOBruOBn+OCgeWHpueQhuOBi+OCiemZpOWklihjbG9zZSkK44CAaWlp44KS5YmK6ZmkCuOAgGJiYuOCkuOCouODs+ODreODg+OCryhjbG9zZSkK44CACuOAgGRkZCxoaGjjgpLjg63jg4Pjgq8K44CA6YeN6KSH5YaN44OB44Kn44OD44KvCuOAgGhoaOWJiumZpAogIGRkZOOCkuOCouODs+ODreODg+OCrwo=