From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 1C376431FBF for ; Tue, 1 Apr 2014 19:07:30 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.7 X-Spam-Level: X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BF9vIeC9DQZ5 for ; Tue, 1 Apr 2014 19:07:26 -0700 (PDT) Received: from dmz-mailsec-scanner-7.mit.edu (dmz-mailsec-scanner-7.mit.edu [18.7.68.36]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id C84C0431FBD for ; Tue, 1 Apr 2014 19:07:25 -0700 (PDT) X-AuditID: 12074424-f79e26d000000c70-2c-533b70d9c94f Received: from mailhub-auth-3.mit.edu ( [18.9.21.43]) (using TLS with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP id 47.9F.03184.9D07B335; Tue, 1 Apr 2014 22:07:21 -0400 (EDT) Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id s3227Kbu013089; Tue, 1 Apr 2014 22:07:21 -0400 Received: from [10.165.238.236] (154.sub-70-192-13.myvzw.com [70.192.13.154]) (authenticated bits=0) (User authenticated as amdragon@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s3227GLR015807 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT); Tue, 1 Apr 2014 22:07:18 -0400 Message-Id: <201404020207.s3227GLR015807@outgoing.mit.edu> Date: Tue, 01 Apr 2014 22:07:13 -0400 Subject: Re: [Patch v5 2/6] dump: when given output file name, write atomically From: Austin Clements To: David Bremner MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCIsWRmVeSWpSXmKPExsUixCmqrXuzwDrYYMMza4sbrd2MFtdvzmR2 YPJ4tuoWs8eWQ++ZA5iiuGxSUnMyy1KL9O0SuDI2n1jHUvBEpeLV6ya2BsYXyl2MHBwSAiYS H54VdzFyApliEhfurWfrYuTiEBKYzSTR2fKKFcLZwCjx58k1KGc/k8TMXf1MIC28AlYSN1av ZAOxWQRUJfY/bAazhQUCJR49OssIYrMJaEhs278czBYBqrm6bTJYDTOQ3bj2IjPEHEGJkzOf sEDE1SX+zLvEDGErSkzpfsg+gZFvFpKyWUjKZiEpW8DIvIpRNiW3Sjc3MTOnODVZtzg5MS8v tUjXXC83s0QvNaV0EyMo8NhdVHYwNh9SOsQowMGoxMN74LxVsBBrYllxZe4hRkkOJiVRXo5g 62AhvqT8lMqMxOKM+KLSnNTiQ4wSHMxKIrzffYFyvCmJlVWpRfkwKWkOFiVx3rfWQJME0hNL UrNTUwtSi2CyMhwcShK8//OBGgWLUtNTK9Iyc0oQ0kwcnCDDeYCGcxeADC8uSMwtzkyHyJ9i VJQS53UBSQiAJDJK8+B6YYnhFaM40CvCvOIgVTzApALX/QpoMBPI4HVWIINLEhFSUg2MKyU8 p7HYpBluFZIsnCjaPJX91UvfM7eTPAKq321ZwFpoXhpxz+bAZ5+jT9WcPU5tj/h+UyC/28F1 ystlx4xlxfV2CUxfH7tqp5rhfB2uFc8WMFdP/Sc66cyGyXMvdpcd+Ga51r5JxfMyd5ypY6xX iVOVfr65OJdkigTzT9OkllovDeMD7PVKLMUZiYZazEXFiQDmis0x5wIAAA== Cc: notmuch X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Apr 2014 02:07:30 -0000 KFBhcmRvbiB0aGUgbW9iaWxlIHJldmlldykKCk9uIEFwciAxLCAyMDE0IDk6MTYgUE0sIERhdmlk IEJyZW1uZXIgPGRhdmlkQHRldGhlcmEubmV0PiB3cm90ZToKPgo+IEl0IGlzIHVzZWZ1bCB0byBh YmxlIHRvIHRlbGwgd2hldGhlciBhIGR1bXAgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBpbiAKPiBz aXR1dGlvbnMgd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIHJldHVybiBjb2RlLgoK IlNpdHVhdGlvbnMuIsKgIFRoaXMgY29tbWl0IG1lc3NhZ2UgZG9lc24ndCBzZWVtIHZlcnkgcmVs YXRlZCB0byBhdG9taWNpdHk/Cgo+IC0tLSAKPiBub3RtdWNoLWR1bXAuYyB8IDYxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0gCj4gMSBm aWxlIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKSAKPgo+IGRpZmYg LS1naXQgYS9ub3RtdWNoLWR1bXAuYyBiL25vdG11Y2gtZHVtcC5jIAo+IGluZGV4IDI4MzQyYjcu LjA1ZWQ2YjQgMTAwNjQ0IAo+IC0tLSBhL25vdG11Y2gtZHVtcC5jIAo+ICsrKyBiL25vdG11Y2gt ZHVtcC5jIAo+IEBAIC0xMjksMzAgKzEyOSw2NSBAQCBub3RtdWNoX2RhdGFiYXNlX2R1bXAgKG5v dG11Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwgCj4geyAKPiDCoMKgwqDCoCBnekZpbGUgb3V0cHV0 OyAKPiDCoMKgwqDCoCBjb25zdCBjaGFyICptb2RlID0gZ3ppcF9vdXRwdXQgPyAidzkiIDogIndU IjsgCj4gK8KgwqDCoCBjb25zdCBjaGFyICpuYW1lX2Zvcl9lcnJvciA9IG91dHB1dF9maWxlX25h bWUgPyBvdXRwdXRfZmlsZV9uYW1lIDogInN0ZG91dCI7IAo+Cj4gLcKgwqDCoCBpbnQgcmV0OyAK PiArwqDCoMKgIGNoYXIgKnRlbXBuYW1lID0gTlVMTDsgCj4gK8KgwqDCoCBpbnQgb3V0ZmQgPSAt MTsgCj4gKyAKPiArwqDCoMKgIGludCByZXQgPSAtMTsgCj4gKyAKPiArwqDCoMKgIGlmIChvdXRw dXRfZmlsZV9uYW1lKSB7IAo+ICsgdGVtcG5hbWUgPSB0YWxsb2NfYXNwcmludGYgKG5vdG11Y2gs ICIlcy5YWFhYWFgiLCBvdXRwdXRfZmlsZV9uYW1lKTsgCj4gKyBvdXRmZCA9IG1rc3RlbXAgKHRl bXBuYW1lKTsgCj4gK8KgwqDCoCB9IGVsc2UgeyAKPiArIG91dGZkID0gZmlsZW5vIChzdGRvdXQp OyAKPiArwqDCoMKgIH0gCj4KPiAtwqDCoMKgIGlmIChvdXRwdXRfZmlsZV9uYW1lKSAKPiAtIG91 dHB1dCA9IGd6b3BlbiAob3V0cHV0X2ZpbGVfbmFtZSwgbW9kZSk7IAo+IC3CoMKgwqAgZWxzZSAK PiAtIG91dHB1dCA9IGd6ZG9wZW4gKGZpbGVubyAoc3Rkb3V0KSwgbW9kZSk7IAo+ICvCoMKgwqAg aWYgKG91dGZkIDwgMCkgeyAKPiArIGZwcmludGYgKHN0ZGVyciwgIkJhZCBvdXRwdXQgZmlsZSAl c1xuIiwgbmFtZV9mb3JfZXJyb3IpOyAKPiArIGdvdG8gRE9ORTsgCj4gK8KgwqDCoCB9IAo+ICsg Cj4gK8KgwqDCoCBvdXRwdXQgPSBnemRvcGVuIChvdXRmZCwgbW9kZSk7IAo+Cj4gwqDCoMKgwqAg aWYgKG91dHB1dCA9PSBOVUxMKSB7IAo+IGZwcmludGYgKHN0ZGVyciwgIkVycm9yIG9wZW5pbmcg JXMgZm9yIChnemlwKSB3cml0aW5nOiAlc1xuIiwgCj4gLSBvdXRwdXRfZmlsZV9uYW1lID8gb3V0 cHV0X2ZpbGVfbmFtZSA6ICJzdGRvdXQiLCBzdHJlcnJvciAoZXJybm8pKTsgCj4gLSByZXR1cm4g RVhJVF9GQUlMVVJFOyAKPiArIG5hbWVfZm9yX2Vycm9yLCBzdHJlcnJvciAoZXJybm8pKTsgCj4g KyBnb3RvIERPTkU7IAo+IMKgwqDCoMKgIH0gCj4KPiDCoMKgwqDCoCByZXQgPSBkYXRhYmFzZV9k dW1wX2ZpbGUgKG5vdG11Y2gsIG91dHB1dCwgcXVlcnlfc3RyLCBvdXRwdXRfZm9ybWF0KTsgCj4g K8KgwqDCoCBpZiAocmV0KSBnb3RvIERPTkU7IAo+Cj4gLcKgwqDCoCBpZiAoZ3pmbHVzaCAob3V0 cHV0LCBaX0ZJTklTSCkpIHsgCj4gLSBmcHJpbnRmIChzdGRlcnIsICJFcnJvciBmbHVzaGluZyBv dXRwdXQ6ICVzXG4iLCAKPiAtIGd6ZXJyb3IgKG91dHB1dCwgTlVMTCkpOyAKPiAtIHJldHVybiBF WElUX0ZBSUxVUkU7IAo+ICvCoMKgwqAgcmV0ID0gZ3pmbHVzaCAob3V0cHV0LCBaX0ZJTklTSCk7 IAo+ICvCoMKgwqAgaWYgKHJldCkgeyAKPiArIGZwcmludGYgKHN0ZGVyciwgIkVycm9yIGZsdXNo aW5nIG91dHB1dDogJXNcbiIsIGd6ZXJyb3IgKG91dHB1dCwgTlVMTCkpOyAKPiArIGdvdG8gRE9O RTsgCj4gwqDCoMKgwqAgfSAKPgo+IC3CoMKgwqAgaWYgKG91dHB1dF9maWxlX25hbWUpIAo+IC0g Z3pjbG9zZV93IChvdXRwdXQpOyAKPiArwqDCoMKgIHJldCA9IGZkYXRhc3luYyAob3V0ZmQpOwoK VGhpcyBtYXkgZmFpbCBpZiBvdXRmZCBpc24ndCBhIHJlZ3VsYXIgZmlsZS7CoCBXZSBwcm9iYWJs eSBzaG91bGQgb25seSBkbyB0aGlzIGlmIG91dHB1dF9maWxlX25hbWUuwqAgT3Igd2UgY291bGQg aWdub3JlIEVJTlZBTCAoYnV0IHRoYXQgbWF5IG1hc2sgYnVncykuCgo+ICvCoMKgwqAgaWYgKHJl dCkgeyAKPiArIHBlcnJvciAoImZkYXRhc3luYyIpOwoKcGVycm9yJ3MgZmluZSBmb3IgcXVpY2sg aGFja3MsIGJ1dCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gZ2l2ZSBhIHJlYWwgZXJyb3IgbWVzc2Fn ZSBoZXJlLgoKPiArIGdvdG8gRE9ORTsgCj4gK8KgwqDCoCB9IAo+ICsgCj4gK8KgwqDCoCBpZiAo b3V0cHV0X2ZpbGVfbmFtZSkgeyAKPiArIHJldCA9IGd6Y2xvc2VfdyAob3V0cHV0KTsgCj4gKyBp ZiAocmV0ICE9IFpfT0spIHsgCj4gKyDCoMKgwqAgcmV0ID0gRVhJVF9GQUlMVVJFOyAKPiArIMKg wqDCoCBnb3RvIERPTkU7IAo+ICsgfSAKPiArIAo+ICsgcmV0ID0gcmVuYW1lICh0ZW1wbmFtZSwg b3V0cHV0X2ZpbGVfbmFtZSk7IAo+ICsgaWYgKHJldCkgeyAKPiArIMKgwqDCoCBwZXJyb3IgKCJy ZW5hbWUiKTsgCj4gKyDCoMKgwqAgZ290byBET05FOyAKPiArIH0gCj4gKyAKPiArwqDCoMKgIH0g Cj4gKyBET05FOiAKPiArwqDCoMKgIGlmIChyZXQgIT0gRVhJVF9TVUNDRVNTICYmIG91dHB1dF9m aWxlX25hbWUpIAo+ICsgKHZvaWQpIHVubGluayAodGVtcG5hbWUpOwoKV2UgbmVlZCB0byBnemNs b3NlIG9uIHRoZSBlcnJvciBwYXRocyB0byBmcmVlIHpsaWIncyBpbnRlcm5hbCByZXNvdXJjZXMu wqAgVGhpcyBpcyBhIHByb2JsZW0gaWYgd2UgaGFuZGVkIHN0ZG91dCB0byBnemRvcGVuLsKgIFdl IHNob3VsZG4ndCB3cml0ZSBhbnkgbW9yZSB0byBzdGRvdXQgYW55d2F5IGluIHRoYXQgY2FzZSwg YnV0IG1heWJlIGl0IHdvdWxkIGJlIGJldHRlciB0byBkdXAgc3Rkb3V0PwoKPgo+IMKgwqDCoMKg IHJldHVybiByZXQ7IAo+IH0gCj4gLS0gCj4gMS45LjAgCj4KPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXyAKPiBub3RtdWNoIG1haWxpbmcgbGlzdCAKPiBu b3RtdWNoQG5vdG11Y2htYWlsLm9yZyAKPiBodHRwOi8vbm90bXVjaG1haWwub3JnL21haWxtYW4v bGlzdGluZm8vbm90bXVjaCAK