Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 10AF6431FBC for ; Thu, 21 Aug 2014 02:01:20 -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 wczr6v2KOVrd for ; Thu, 21 Aug 2014 02:01:12 -0700 (PDT) Received: from mail-qg0-f49.google.com (mail-qg0-f49.google.com [209.85.192.49]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 0E6A7431FAF for ; Thu, 21 Aug 2014 02:01:12 -0700 (PDT) Received: by mail-qg0-f49.google.com with SMTP id j107so8374294qga.8 for ; Thu, 21 Aug 2014 02:01:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=SY6FH7tiBKDH4pivZs4H+O65nntus9ylO39RjGKHvhQ=; b=T2OHJUxE5C6aK+0+M7lZuEz/n6QOXN6McGsg6jZ/CW+K924ppkeQn3BaxBIpf7NZPH eWb++cNUQyfGrNB9P/KOYIQ74Mp3x4/p9oiENIAQ/uO/tWyZsKElR/tzw5feBk9u+hdJ 9k4cieF4QdPgHAKOuqQ5NDvWbR95w9aS5O8s/g7VPNSETI85/Z5fQqonvs8W8eDPl3mF qDB3FautXuMorRxqe5yfon/VUsM6kGaI2o2E6ytZEIC5+TSgdqlHjs+xKxUhm9TzZzl5 3TccgL62NgsOSFts5U0fUpTMeBA0R834uvEIHmCFtSt2Rfu1ZJYjWjDFR0gdh8oQQYKb esyg== X-Gm-Message-State: ALoCoQkV5uApY+27YOdlv+ttx04Fgp2EP8yFm6FDk0hFcGlBatrPD0AyNAvcr6AOhx6aD/+95CcI MIME-Version: 1.0 X-Received: by 10.140.102.142 with SMTP id w14mr80976220qge.101.1408611670062; Thu, 21 Aug 2014 02:01:10 -0700 (PDT) Received: by 10.96.88.40 with HTTP; Thu, 21 Aug 2014 02:01:09 -0700 (PDT) In-Reply-To: <1408610770-astroid-0-4on2jlyj8n-28086@strange> References: <1408610770-astroid-0-4on2jlyj8n-28086@strange> Date: Thu, 21 Aug 2014 11:01:09 +0200 Message-ID: Subject: Re: DatabaseModifiedErrors causing troubles From: Gaute Hope To: notmuch Content-Type: multipart/mixed; boundary=001a11c163e038ca1a05011ff64a 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: Thu, 21 Aug 2014 09:01:20 -0000 --001a11c163e038ca1a05011ff64a Content-Type: text/plain; charset=UTF-8 On Thu, Aug 21, 2014 at 10:59 AM, Gaute Hope wrote: > For portability I would suggest starting to move towards the GError > scheme provided by glib (also used by gmime). This is a somewhat major > effort though since ensuring that error propagation is done right [0] is > somewhat tricky. It provides more or less the same functionality as > exceptions do in C++. > > There is also the problem of having to change the API - one way to avoid > that is to create wrappers that behave like the old API, but don't > handle errors that good. This requires the addition of addiontal _error > variations of the current set of functions. It will be a mess. > > [0] https://developer.gnome.org/glib/stable/glib-Error-Reporting.html Here's a quick mockup of how that could look. Cheers, Gaute --001a11c163e038ca1a05011ff64a Content-Type: text/x-patch; charset=US-ASCII; name="0001-mockup-Illustration-of-GError-for-error-reporting.patch" Content-Disposition: attachment; filename="0001-mockup-Illustration-of-GError-for-error-reporting.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hz3v0kjf0 RnJvbSBlYjQ5ZTMxMWUzMTJhNWM5NTEwY2EyNGRlYzI0YWQxYzYwYWVkZWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHYXV0ZSBIb3BlIDxlZ0BnYXV0ZS52ZXRzai5jb20+CkRhdGU6 IFRodSwgMjEgQXVnIDIwMTQgMTA6NTY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBtb2NrdXA6 IElsbHVzdHJhdGlvbiBvZiBHRXJyb3IgZm9yIGVycm9yIHJlcG9ydGluZwoKLS0tCiBsaWIvZGF0 YWJhc2UuY2MgfCAyMyArKysrKysrKysrKysrKysrKysrKystLQogbGliL25vdG11Y2guaCAgIHwg NDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZp bGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliL2RhdGFiYXNlLmNjIGIvbGliL2RhdGFiYXNlLmNjCmluZGV4IDljMDk1MmEuLjA4NTE1 MmYgMTAwNjQ0Ci0tLSBhL2xpYi9kYXRhYmFzZS5jYworKysgYi9saWIvZGF0YWJhc2UuY2MKQEAg LTQyLDYgKzQyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIGNvbnN0IGNoYXIgKnByZWZpeDsK IH0gcHJlZml4X3Q7CiAKK0dRdWFyayBub3RtdWNoX2Vycm9yX3F1YXJrOworCiAjZGVmaW5lIE5P VE1VQ0hfREFUQUJBU0VfVkVSU0lPTiAyCiAKICNkZWZpbmUgU1RSSU5HSUZZKHMpIF9TVUJfU1RS SU5HSUZZKHMpCkBAIC0zNjcsMTYgKzM2OSwyOCBAQCBfbWVzc2FnZV9pZF9jb21wcmVzc2VkICh2 b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1lc3NhZ2VfaWQpCiAgICAgcmV0dXJuIGNvbXByZXNzZWQ7 CiB9CiAKKy8qIGRlcHJlY2F0ZWQgd3JhcHBlciAqLwogbm90bXVjaF9zdGF0dXNfdAogbm90bXVj aF9kYXRhYmFzZV9maW5kX21lc3NhZ2UgKG5vdG11Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwKIAkJ CSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlX2lkLAogCQkJICAgICAgIG5vdG11Y2hfbWVzc2Fn ZV90ICoqbWVzc2FnZV9yZXQpCiB7CisgIHJldHVybiBub3RtdWNoX2RhdGFiYXNlX2ZpbmRfbWVz c2FnZV9lcnIgKG5vdG11Y2gsIG1lc3NhZ2VfaWQsIG1lc3NhZ2VfcmV0LCBOVUxMKTsKK30KKwor bm90bXVjaF9zdGF0dXNfdAorbm90bXVjaF9kYXRhYmFzZV9maW5kX21lc3NhZ2VfZXJyIChub3Rt dWNoX2RhdGFiYXNlX3QgKm5vdG11Y2gsCisJCQkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZV9p ZCwKKwkJCSAgICAgICBub3RtdWNoX21lc3NhZ2VfdCAqKm1lc3NhZ2VfcmV0LAorICAgICAgICAg ICAgIEdFcnJvciAqKmVycikKK3sKICAgICBub3RtdWNoX3ByaXZhdGVfc3RhdHVzX3Qgc3RhdHVz OwogICAgIHVuc2lnbmVkIGludCBkb2NfaWQ7CiAKLSAgICBpZiAobWVzc2FnZV9yZXQgPT0gTlVM TCkKLQlyZXR1cm4gTk9UTVVDSF9TVEFUVVNfTlVMTF9QT0lOVEVSOworICAgIGlmIChtZXNzYWdl X3JldCA9PSBOVUxMKSB7CisgICAgICBnX3NldF9lcnJvciAoZXJyLCBOT1RNVUNIX0VSUk9SLCBO T1RNVUNIX1NUQVRVU19OVUxMX1BPSU5URVIsIG5vdG11Y2hfc3RhdHVzX3RvX3N0cmluZyAoTk9U TVVDSF9TVEFUVVNfTlVMTF9QT0lOVEVSKSk7CisgICAgICByZXR1cm4gTk9UTVVDSF9TVEFUVVNf TlVMTF9QT0lOVEVSOworICAgIH0KIAogICAgIGlmIChzdHJsZW4gKG1lc3NhZ2VfaWQpID4gTk9U TVVDSF9NRVNTQUdFX0lEX01BWCkKIAltZXNzYWdlX2lkID0gX21lc3NhZ2VfaWRfY29tcHJlc3Nl ZCAobm90bXVjaCwgbWVzc2FnZV9pZCk7CkBAIC02MzMsNiArNjQ3LDExIEBAIG5vdG11Y2hfZGF0 YWJhc2Vfb3BlbiAoY29uc3QgY2hhciAqcGF0aCwKICAgICB1bnNpZ25lZCBpbnQgaSwgdmVyc2lv bjsKICAgICBzdGF0aWMgaW50IGluaXRpYWxpemVkID0gMDsKIAorICAgIC8qIEluaXRpYWxpemUg R0Vycm9yIHN5c3RlbSAqLworICAgIGlmICghIGluaXRpYWxpemVkKSB7CisgICAgICBub3RtdWNo X2Vycm9yX3F1YXJrID0gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJub3RtdWNoIik7Cisg ICAgfQorCiAgICAgaWYgKHBhdGggPT0gTlVMTCkgewogCWZwcmludGYgKHN0ZGVyciwgIkVycm9y OiBDYW5ub3Qgb3BlbiBhIGRhdGFiYXNlIGZvciBhIE5VTEwgcGF0aC5cbiIpOwogCXN0YXR1cyA9 IE5PVE1VQ0hfU1RBVFVTX05VTExfUE9JTlRFUjsKZGlmZiAtLWdpdCBhL2xpYi9ub3RtdWNoLmgg Yi9saWIvbm90bXVjaC5oCmluZGV4IDNjNWVjOTguLmFmMjhlMDkgMTAwNjQ0Ci0tLSBhL2xpYi9u b3RtdWNoLmgKKysrIGIvbGliL25vdG11Y2guaApAQCAtNDIsNiArNDIsNyBAQAogTk9UTVVDSF9C RUdJTl9ERUNMUwogCiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KIAogI2lm bmRlZiBGQUxTRQogI2RlZmluZSBGQUxTRSAwCkBAIC0xNTksNiArMTYwLDEyIEBAIHR5cGVkZWYg ZW51bSBfbm90bXVjaF9zdGF0dXMgewogICAgICAqIFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv cnRlZC4KICAgICAgKi8KICAgICBOT1RNVUNIX1NUQVRVU19VTlNVUFBPUlRFRF9PUEVSQVRJT04s CisKKyAgICAvKiBBbiBYYXBpYW46OkRhdGFiYXNlTW9kaWZpZWRFcnJvciBoYXMgb2NjdXJyZWQs IGFsbCBkZWNlbmRhbnRzIG9mCisgICAgICogZGF0YWJhc2UgYXJlIGludmFsaWQgYW5kIHRoZSBk YXRhYmFzZSBtdXN0IGJlIHJlb3BlbmVkLgorICAgICAqLworICAgIE5PVE1VQ0hfU1RBVFVTX1hB UElBTl9EQVRBQkFTRV9NT0RJRklFRF9FUlJPUiwKKwogICAgIC8qKgogICAgICAqIE5vdCBhbiBh Y3R1YWwgc3RhdHVzIHZhbHVlLiBKdXN0IGEgd2F5IHRvIGZpbmQgb3V0IGhvdyBtYW55CiAgICAg ICogdmFsaWQgc3RhdHVzIHZhbHVlcyB0aGVyZSBhcmUuCkBAIC0xNjYsNiArMTczLDE4IEBAIHR5 cGVkZWYgZW51bSBfbm90bXVjaF9zdGF0dXMgewogICAgIE5PVE1VQ0hfU1RBVFVTX0xBU1RfU1RB VFVTCiB9IG5vdG11Y2hfc3RhdHVzX3Q7CiAKKworLyogZXJyb3JzICovCitleHRlcm4gR1F1YXJr IG5vdG11Y2hfZXJyb3JfcXVhcms7CisKKworLyoqCisgKiBOT1RNVUNIX0VSUk9SOgorICoKKyAq IFRoZSBOb3RtdWNoIGVycm9yIGRvbWFpbiBHUXVhcmsgdmFsdWUuCisgKiovCisjZGVmaW5lIE5P VE1VQ0hfRVJST1Igbm90bXVjaF9lcnJvcl9xdWFyaworCiAvKioKICAqIEdldCBhIHN0cmluZyBy ZXByZXNlbnRhdGlvbiBvZiBhIG5vdG11Y2hfc3RhdHVzX3QgdmFsdWUuCiAgKgpAQCAtNTU0LDYg KzU3MywzNSBAQCBub3RtdWNoX2RhdGFiYXNlX2ZpbmRfbWVzc2FnZSAobm90bXVjaF9kYXRhYmFz ZV90ICpkYXRhYmFzZSwKIAkJCSAgICAgICBub3RtdWNoX21lc3NhZ2VfdCAqKm1lc3NhZ2UpOwog CiAvKioKKyAqIEZpbmQgYSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2VfaWQuCisgKgor ICogSWYgYSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2VfaWQgaXMgZm91bmQgdGhlbiwg b24gc3VjY2Vzc2Z1bCByZXR1cm4KKyAqIChOT1RNVUNIX1NUQVRVU19TVUNDRVNTKSAnKm1lc3Nh Z2UnIHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gYSBtZXNzYWdlCisgKiBvYmplY3QuICBUaGUgY2Fs bGVyIHNob3VsZCBjYWxsIG5vdG11Y2hfbWVzc2FnZV9kZXN0cm95IHdoZW4gZG9uZSB3aXRoIHRo ZQorICogbWVzc2FnZS4KKyAqCisgKiBPbiBhbnkgZmFpbHVyZSBvciB3aGVuIHRoZSBtZXNzYWdl IGlzIG5vdCBmb3VuZCwgdGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcworICogJyptZXNzYWdlJyB0 byBOVUxMLiBUaGlzIG1lYW5zLCB3aGVuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1MgaXMgcmV0dXJu ZWQsIHRoZQorICogY2FsbGVyIGlzIHN1cHBvc2VkIHRvIGNoZWNrICcqbWVzc2FnZScgZm9yIE5V TEwgdG8gZmluZCBvdXQgd2hldGhlciB0aGUKKyAqIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gbWVz c2FnZV9pZCB3YXMgZm91bmQuCisgKgorICogUmV0dXJuIHZhbHVlOgorICoKKyAqIE5PVE1VQ0hf U1RBVFVTX1NVQ0NFU1M6IFN1Y2Nlc3NmdWwgcmV0dXJuLCBjaGVjayAnKm1lc3NhZ2UnLgorICoK KyAqIE5PVE1VQ0hfU1RBVFVTX05VTExfUE9JTlRFUjogVGhlIGdpdmVuICdtZXNzYWdlJyBhcmd1 bWVudCBpcyBOVUxMCisgKgorICogTk9UTVVDSF9TVEFUVVNfT1VUX09GX01FTU9SWTogT3V0IG9m IG1lbW9yeSwgY3JlYXRpbmcgbWVzc2FnZSBvYmplY3QKKyAqCisgKiBOT1RNVUNIX1NUQVRVU19Y QVBJQU5fRVhDRVBUSU9OOiBBIFhhcGlhbiBleGNlcHRpb24gb2NjdXJyZWQKKyAqLworbm90bXVj aF9zdGF0dXNfdAorbm90bXVjaF9kYXRhYmFzZV9maW5kX21lc3NhZ2VfZXJyIChub3RtdWNoX2Rh dGFiYXNlX3QgKmRhdGFiYXNlLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2VfaWQsCisJ CQkgICAgICAgbm90bXVjaF9tZXNzYWdlX3QgKiptZXNzYWdlLAorICAgICAgICAgICAgIEdFcnJv ciAqKmVycik7CisKKy8qKgogICogRmluZCBhIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gZmlsZW5h bWUuCiAgKgogICogSWYgdGhlIGRhdGFiYXNlIGNvbnRhaW5zIGEgbWVzc2FnZSB3aXRoIHRoZSBn aXZlbiBmaWxlbmFtZSB0aGVuLCBvbgotLSAKMi4wLjQKCg== --001a11c163e038ca1a05011ff64a--