1 Return-Path: <eg@gaute.vetsj.com>
\r
2 X-Original-To: notmuch@notmuchmail.org
\r
3 Delivered-To: notmuch@notmuchmail.org
\r
4 Received: from localhost (localhost [127.0.0.1])
\r
5 by olra.theworths.org (Postfix) with ESMTP id 10AF6431FBC
\r
6 for <notmuch@notmuchmail.org>; Thu, 21 Aug 2014 02:01:20 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5
\r
12 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled
\r
13 Received: from olra.theworths.org ([127.0.0.1])
\r
14 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
15 with ESMTP id wczr6v2KOVrd for <notmuch@notmuchmail.org>;
\r
16 Thu, 21 Aug 2014 02:01:12 -0700 (PDT)
\r
17 Received: from mail-qg0-f49.google.com (mail-qg0-f49.google.com
\r
18 [209.85.192.49]) (using TLSv1 with cipher RC4-SHA (128/128 bits))
\r
19 (No client certificate requested)
\r
20 by olra.theworths.org (Postfix) with ESMTPS id 0E6A7431FAF
\r
21 for <notmuch@notmuchmail.org>; Thu, 21 Aug 2014 02:01:12 -0700 (PDT)
\r
22 Received: by mail-qg0-f49.google.com with SMTP id j107so8374294qga.8
\r
23 for <notmuch@notmuchmail.org>; Thu, 21 Aug 2014 02:01:10 -0700 (PDT)
\r
24 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
\r
25 d=1e100.net; s=20130820;
\r
26 h=x-gm-message-state:mime-version:in-reply-to:references:date
\r
27 :message-id:subject:from:to:content-type;
\r
28 bh=SY6FH7tiBKDH4pivZs4H+O65nntus9ylO39RjGKHvhQ=;
\r
29 b=T2OHJUxE5C6aK+0+M7lZuEz/n6QOXN6McGsg6jZ/CW+K924ppkeQn3BaxBIpf7NZPH
\r
30 eWb++cNUQyfGrNB9P/KOYIQ74Mp3x4/p9oiENIAQ/uO/tWyZsKElR/tzw5feBk9u+hdJ
\r
31 9k4cieF4QdPgHAKOuqQ5NDvWbR95w9aS5O8s/g7VPNSETI85/Z5fQqonvs8W8eDPl3mF
\r
32 qDB3FautXuMorRxqe5yfon/VUsM6kGaI2o2E6ytZEIC5+TSgdqlHjs+xKxUhm9TzZzl5
\r
33 3TccgL62NgsOSFts5U0fUpTMeBA0R834uvEIHmCFtSt2Rfu1ZJYjWjDFR0gdh8oQQYKb
\r
36 ALoCoQkV5uApY+27YOdlv+ttx04Fgp2EP8yFm6FDk0hFcGlBatrPD0AyNAvcr6AOhx6aD/+95CcI
\r
38 X-Received: by 10.140.102.142 with SMTP id w14mr80976220qge.101.1408611670062;
\r
39 Thu, 21 Aug 2014 02:01:10 -0700 (PDT)
\r
40 Received: by 10.96.88.40 with HTTP; Thu, 21 Aug 2014 02:01:09 -0700 (PDT)
\r
41 In-Reply-To: <1408610770-astroid-0-4on2jlyj8n-28086@strange>
\r
43 <CABKe4MvEdcsq8BZ-vq6R0Vnw87zEgBvqW_2F-Wysf5GNchqweg@mail.gmail.com>
\r
44 <1408610770-astroid-0-4on2jlyj8n-28086@strange>
\r
45 Date: Thu, 21 Aug 2014 11:01:09 +0200
\r
47 <CABKe4MsspOoNOE+2_us+FcjxbRtMMsnY1k19hfSrff4oqHdFmw@mail.gmail.com>
\r
48 Subject: Re: DatabaseModifiedErrors causing troubles
\r
49 From: Gaute Hope <eg@gaute.vetsj.com>
\r
50 To: notmuch <notmuch@notmuchmail.org>
\r
51 Content-Type: multipart/mixed; boundary=001a11c163e038ca1a05011ff64a
\r
52 X-BeenThere: notmuch@notmuchmail.org
\r
53 X-Mailman-Version: 2.1.13
\r
55 List-Id: "Use and development of the notmuch mail system."
\r
56 <notmuch.notmuchmail.org>
\r
57 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
58 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
59 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
60 List-Post: <mailto:notmuch@notmuchmail.org>
\r
61 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
62 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
63 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
64 X-List-Received-Date: Thu, 21 Aug 2014 09:01:20 -0000
\r
66 --001a11c163e038ca1a05011ff64a
\r
67 Content-Type: text/plain; charset=UTF-8
\r
69 On Thu, Aug 21, 2014 at 10:59 AM, Gaute Hope <eg@gaute.vetsj.com> wrote:
\r
70 > For portability I would suggest starting to move towards the GError
\r
71 > scheme provided by glib (also used by gmime). This is a somewhat major
\r
72 > effort though since ensuring that error propagation is done right [0] is
\r
73 > somewhat tricky. It provides more or less the same functionality as
\r
74 > exceptions do in C++.
\r
76 > There is also the problem of having to change the API - one way to avoid
\r
77 > that is to create wrappers that behave like the old API, but don't
\r
78 > handle errors that good. This requires the addition of addiontal _error
\r
79 > variations of the current set of functions. It will be a mess.
\r
81 > [0] https://developer.gnome.org/glib/stable/glib-Error-Reporting.html
\r
83 Here's a quick mockup of how that could look.
\r
87 --001a11c163e038ca1a05011ff64a
\r
88 Content-Type: text/x-patch; charset=US-ASCII;
\r
89 name="0001-mockup-Illustration-of-GError-for-error-reporting.patch"
\r
90 Content-Disposition: attachment;
\r
91 filename="0001-mockup-Illustration-of-GError-for-error-reporting.patch"
\r
92 Content-Transfer-Encoding: base64
\r
93 X-Attachment-Id: f_hz3v0kjf0
\r
95 RnJvbSBlYjQ5ZTMxMWUzMTJhNWM5NTEwY2EyNGRlYzI0YWQxYzYwYWVkZWU5IE1vbiBTZXAgMTcg
\r
96 MDA6MDA6MDAgMjAwMQpGcm9tOiBHYXV0ZSBIb3BlIDxlZ0BnYXV0ZS52ZXRzai5jb20+CkRhdGU6
\r
97 IFRodSwgMjEgQXVnIDIwMTQgMTA6NTY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBtb2NrdXA6
\r
98 IElsbHVzdHJhdGlvbiBvZiBHRXJyb3IgZm9yIGVycm9yIHJlcG9ydGluZwoKLS0tCiBsaWIvZGF0
\r
99 YWJhc2UuY2MgfCAyMyArKysrKysrKysrKysrKysrKysrKystLQogbGliL25vdG11Y2guaCAgIHwg
\r
100 NDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZp
\r
101 bGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
\r
102 IGEvbGliL2RhdGFiYXNlLmNjIGIvbGliL2RhdGFiYXNlLmNjCmluZGV4IDljMDk1MmEuLjA4NTE1
\r
103 MmYgMTAwNjQ0Ci0tLSBhL2xpYi9kYXRhYmFzZS5jYworKysgYi9saWIvZGF0YWJhc2UuY2MKQEAg
\r
104 LTQyLDYgKzQyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIGNvbnN0IGNoYXIgKnByZWZpeDsK
\r
105 IH0gcHJlZml4X3Q7CiAKK0dRdWFyayBub3RtdWNoX2Vycm9yX3F1YXJrOworCiAjZGVmaW5lIE5P
\r
106 VE1VQ0hfREFUQUJBU0VfVkVSU0lPTiAyCiAKICNkZWZpbmUgU1RSSU5HSUZZKHMpIF9TVUJfU1RS
\r
107 SU5HSUZZKHMpCkBAIC0zNjcsMTYgKzM2OSwyOCBAQCBfbWVzc2FnZV9pZF9jb21wcmVzc2VkICh2
\r
108 b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1lc3NhZ2VfaWQpCiAgICAgcmV0dXJuIGNvbXByZXNzZWQ7
\r
109 CiB9CiAKKy8qIGRlcHJlY2F0ZWQgd3JhcHBlciAqLwogbm90bXVjaF9zdGF0dXNfdAogbm90bXVj
\r
110 aF9kYXRhYmFzZV9maW5kX21lc3NhZ2UgKG5vdG11Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwKIAkJ
\r
111 CSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlX2lkLAogCQkJICAgICAgIG5vdG11Y2hfbWVzc2Fn
\r
112 ZV90ICoqbWVzc2FnZV9yZXQpCiB7CisgIHJldHVybiBub3RtdWNoX2RhdGFiYXNlX2ZpbmRfbWVz
\r
113 c2FnZV9lcnIgKG5vdG11Y2gsIG1lc3NhZ2VfaWQsIG1lc3NhZ2VfcmV0LCBOVUxMKTsKK30KKwor
\r
114 bm90bXVjaF9zdGF0dXNfdAorbm90bXVjaF9kYXRhYmFzZV9maW5kX21lc3NhZ2VfZXJyIChub3Rt
\r
115 dWNoX2RhdGFiYXNlX3QgKm5vdG11Y2gsCisJCQkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZV9p
\r
116 ZCwKKwkJCSAgICAgICBub3RtdWNoX21lc3NhZ2VfdCAqKm1lc3NhZ2VfcmV0LAorICAgICAgICAg
\r
117 ICAgIEdFcnJvciAqKmVycikKK3sKICAgICBub3RtdWNoX3ByaXZhdGVfc3RhdHVzX3Qgc3RhdHVz
\r
118 OwogICAgIHVuc2lnbmVkIGludCBkb2NfaWQ7CiAKLSAgICBpZiAobWVzc2FnZV9yZXQgPT0gTlVM
\r
119 TCkKLQlyZXR1cm4gTk9UTVVDSF9TVEFUVVNfTlVMTF9QT0lOVEVSOworICAgIGlmIChtZXNzYWdl
\r
120 X3JldCA9PSBOVUxMKSB7CisgICAgICBnX3NldF9lcnJvciAoZXJyLCBOT1RNVUNIX0VSUk9SLCBO
\r
121 T1RNVUNIX1NUQVRVU19OVUxMX1BPSU5URVIsIG5vdG11Y2hfc3RhdHVzX3RvX3N0cmluZyAoTk9U
\r
122 TVVDSF9TVEFUVVNfTlVMTF9QT0lOVEVSKSk7CisgICAgICByZXR1cm4gTk9UTVVDSF9TVEFUVVNf
\r
123 TlVMTF9QT0lOVEVSOworICAgIH0KIAogICAgIGlmIChzdHJsZW4gKG1lc3NhZ2VfaWQpID4gTk9U
\r
124 TVVDSF9NRVNTQUdFX0lEX01BWCkKIAltZXNzYWdlX2lkID0gX21lc3NhZ2VfaWRfY29tcHJlc3Nl
\r
125 ZCAobm90bXVjaCwgbWVzc2FnZV9pZCk7CkBAIC02MzMsNiArNjQ3LDExIEBAIG5vdG11Y2hfZGF0
\r
126 YWJhc2Vfb3BlbiAoY29uc3QgY2hhciAqcGF0aCwKICAgICB1bnNpZ25lZCBpbnQgaSwgdmVyc2lv
\r
127 bjsKICAgICBzdGF0aWMgaW50IGluaXRpYWxpemVkID0gMDsKIAorICAgIC8qIEluaXRpYWxpemUg
\r
128 R0Vycm9yIHN5c3RlbSAqLworICAgIGlmICghIGluaXRpYWxpemVkKSB7CisgICAgICBub3RtdWNo
\r
129 X2Vycm9yX3F1YXJrID0gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJub3RtdWNoIik7Cisg
\r
130 ICAgfQorCiAgICAgaWYgKHBhdGggPT0gTlVMTCkgewogCWZwcmludGYgKHN0ZGVyciwgIkVycm9y
\r
131 OiBDYW5ub3Qgb3BlbiBhIGRhdGFiYXNlIGZvciBhIE5VTEwgcGF0aC5cbiIpOwogCXN0YXR1cyA9
\r
132 IE5PVE1VQ0hfU1RBVFVTX05VTExfUE9JTlRFUjsKZGlmZiAtLWdpdCBhL2xpYi9ub3RtdWNoLmgg
\r
133 Yi9saWIvbm90bXVjaC5oCmluZGV4IDNjNWVjOTguLmFmMjhlMDkgMTAwNjQ0Ci0tLSBhL2xpYi9u
\r
134 b3RtdWNoLmgKKysrIGIvbGliL25vdG11Y2guaApAQCAtNDIsNiArNDIsNyBAQAogTk9UTVVDSF9C
\r
135 RUdJTl9ERUNMUwogCiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KIAogI2lm
\r
136 bmRlZiBGQUxTRQogI2RlZmluZSBGQUxTRSAwCkBAIC0xNTksNiArMTYwLDEyIEBAIHR5cGVkZWYg
\r
137 ZW51bSBfbm90bXVjaF9zdGF0dXMgewogICAgICAqIFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
\r
138 cnRlZC4KICAgICAgKi8KICAgICBOT1RNVUNIX1NUQVRVU19VTlNVUFBPUlRFRF9PUEVSQVRJT04s
\r
139 CisKKyAgICAvKiBBbiBYYXBpYW46OkRhdGFiYXNlTW9kaWZpZWRFcnJvciBoYXMgb2NjdXJyZWQs
\r
140 IGFsbCBkZWNlbmRhbnRzIG9mCisgICAgICogZGF0YWJhc2UgYXJlIGludmFsaWQgYW5kIHRoZSBk
\r
141 YXRhYmFzZSBtdXN0IGJlIHJlb3BlbmVkLgorICAgICAqLworICAgIE5PVE1VQ0hfU1RBVFVTX1hB
\r
142 UElBTl9EQVRBQkFTRV9NT0RJRklFRF9FUlJPUiwKKwogICAgIC8qKgogICAgICAqIE5vdCBhbiBh
\r
143 Y3R1YWwgc3RhdHVzIHZhbHVlLiBKdXN0IGEgd2F5IHRvIGZpbmQgb3V0IGhvdyBtYW55CiAgICAg
\r
144 ICogdmFsaWQgc3RhdHVzIHZhbHVlcyB0aGVyZSBhcmUuCkBAIC0xNjYsNiArMTczLDE4IEBAIHR5
\r
145 cGVkZWYgZW51bSBfbm90bXVjaF9zdGF0dXMgewogICAgIE5PVE1VQ0hfU1RBVFVTX0xBU1RfU1RB
\r
146 VFVTCiB9IG5vdG11Y2hfc3RhdHVzX3Q7CiAKKworLyogZXJyb3JzICovCitleHRlcm4gR1F1YXJr
\r
147 IG5vdG11Y2hfZXJyb3JfcXVhcms7CisKKworLyoqCisgKiBOT1RNVUNIX0VSUk9SOgorICoKKyAq
\r
148 IFRoZSBOb3RtdWNoIGVycm9yIGRvbWFpbiBHUXVhcmsgdmFsdWUuCisgKiovCisjZGVmaW5lIE5P
\r
149 VE1VQ0hfRVJST1Igbm90bXVjaF9lcnJvcl9xdWFyaworCiAvKioKICAqIEdldCBhIHN0cmluZyBy
\r
150 ZXByZXNlbnRhdGlvbiBvZiBhIG5vdG11Y2hfc3RhdHVzX3QgdmFsdWUuCiAgKgpAQCAtNTU0LDYg
\r
151 KzU3MywzNSBAQCBub3RtdWNoX2RhdGFiYXNlX2ZpbmRfbWVzc2FnZSAobm90bXVjaF9kYXRhYmFz
\r
152 ZV90ICpkYXRhYmFzZSwKIAkJCSAgICAgICBub3RtdWNoX21lc3NhZ2VfdCAqKm1lc3NhZ2UpOwog
\r
153 CiAvKioKKyAqIEZpbmQgYSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2VfaWQuCisgKgor
\r
154 ICogSWYgYSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2VfaWQgaXMgZm91bmQgdGhlbiwg
\r
155 b24gc3VjY2Vzc2Z1bCByZXR1cm4KKyAqIChOT1RNVUNIX1NUQVRVU19TVUNDRVNTKSAnKm1lc3Nh
\r
156 Z2UnIHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gYSBtZXNzYWdlCisgKiBvYmplY3QuICBUaGUgY2Fs
\r
157 bGVyIHNob3VsZCBjYWxsIG5vdG11Y2hfbWVzc2FnZV9kZXN0cm95IHdoZW4gZG9uZSB3aXRoIHRo
\r
158 ZQorICogbWVzc2FnZS4KKyAqCisgKiBPbiBhbnkgZmFpbHVyZSBvciB3aGVuIHRoZSBtZXNzYWdl
\r
159 IGlzIG5vdCBmb3VuZCwgdGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcworICogJyptZXNzYWdlJyB0
\r
160 byBOVUxMLiBUaGlzIG1lYW5zLCB3aGVuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1MgaXMgcmV0dXJu
\r
161 ZWQsIHRoZQorICogY2FsbGVyIGlzIHN1cHBvc2VkIHRvIGNoZWNrICcqbWVzc2FnZScgZm9yIE5V
\r
162 TEwgdG8gZmluZCBvdXQgd2hldGhlciB0aGUKKyAqIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gbWVz
\r
163 c2FnZV9pZCB3YXMgZm91bmQuCisgKgorICogUmV0dXJuIHZhbHVlOgorICoKKyAqIE5PVE1VQ0hf
\r
164 U1RBVFVTX1NVQ0NFU1M6IFN1Y2Nlc3NmdWwgcmV0dXJuLCBjaGVjayAnKm1lc3NhZ2UnLgorICoK
\r
165 KyAqIE5PVE1VQ0hfU1RBVFVTX05VTExfUE9JTlRFUjogVGhlIGdpdmVuICdtZXNzYWdlJyBhcmd1
\r
166 bWVudCBpcyBOVUxMCisgKgorICogTk9UTVVDSF9TVEFUVVNfT1VUX09GX01FTU9SWTogT3V0IG9m
\r
167 IG1lbW9yeSwgY3JlYXRpbmcgbWVzc2FnZSBvYmplY3QKKyAqCisgKiBOT1RNVUNIX1NUQVRVU19Y
\r
168 QVBJQU5fRVhDRVBUSU9OOiBBIFhhcGlhbiBleGNlcHRpb24gb2NjdXJyZWQKKyAqLworbm90bXVj
\r
169 aF9zdGF0dXNfdAorbm90bXVjaF9kYXRhYmFzZV9maW5kX21lc3NhZ2VfZXJyIChub3RtdWNoX2Rh
\r
170 dGFiYXNlX3QgKmRhdGFiYXNlLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2VfaWQsCisJ
\r
171 CQkgICAgICAgbm90bXVjaF9tZXNzYWdlX3QgKiptZXNzYWdlLAorICAgICAgICAgICAgIEdFcnJv
\r
172 ciAqKmVycik7CisKKy8qKgogICogRmluZCBhIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gZmlsZW5h
\r
173 bWUuCiAgKgogICogSWYgdGhlIGRhdGFiYXNlIGNvbnRhaW5zIGEgbWVzc2FnZSB3aXRoIHRoZSBn
\r
174 aXZlbiBmaWxlbmFtZSB0aGVuLCBvbgotLSAKMi4wLjQKCg==
\r
175 --001a11c163e038ca1a05011ff64a--
\r