From: Franz Fellner <alpine.art.de@gmail.com>
To: Gaute Hope <eg@gaute.vetsj.com>, notmuch@notmuchmail.org
Subject: Re: need to call notmuch_threads_get (..) to actually move iterator
Date: Sun, 28 Feb 2016 14:26:05 +0000 [thread overview]
Message-ID: <1456669181-astroid-0-hsim583msj-27330@TP_L520> (raw)
In-Reply-To: <1456315381-astroid-1-8aih8mdal8-11676@strange>
It might be I found the issue:
One big thing notmuch_threads_get does is remove the thread_id from the
match_set. Playing with astroid (branch ti-skip-and-load) i see that it
is not entirely true that the iterator doesn't move. It just seems to
duplicate some messages. There definitely are coming new messages.
So my explanation is that match_set contains duplicate thread_ids. If
that is true a solution to Gautes problem might be to deduplicate the
match_set.
Excerpts from Gaute Hope's message of Februar 24, 2016 1:08 :
> Hi,
>
> it seems to be necessary to actually call notmuch_threads_get (threads)
> to move the thread iterator from a query object, just calling
> notmuch_threads_move_to_next (..) is not enough:
>
> ```
>
> notmuch_query_t *query;
> notmuch_threads_t *threads;
> notmuch_thread_t *thread;
>
> query = notmuch_query_create (database, query_string);
> threads = notmuch_query_search_threads (query);
>
> int i = 0;
>
> for (;
> notmuch_threads_valid (threads);
> notmuch_threads_move_to_next (threads))
> {
> /*
> * with this line commented out the iterator seems to remain in
> * place, and if I below do another loop it will start from the
> * beginning.
>
> thread = notmuch_threads_get (threads);
> ....
> notmuch_thread_destroy (thread);
> */
>
> i++;
> if (i > 100) break;
> }
>
> for (;
> notmuch_threads_valid (threads);
> notmuch_threads_move_to_next (threads))
> {
> /* the thread acquired here will be the first thread in the query.
> * it should be the 101th. */
>
> thread = notmuch_threads_get (threads);
> ....
> notmuch_thread_destroy (thread);
>
> }
>
>
> notmuch_query_destroy (query);
> ```
>
> It is quite slow to skip the threads in this way, might it be faster if
> move_to_next works correctly?
>
> Regards, Gaute
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
>
next prev parent reply other threads:[~2016-02-28 14:24 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-24 12:08 need to call notmuch_threads_get (..) to actually move iterator Gaute Hope
2016-02-28 12:36 ` Gaute Hope
2016-02-28 12:59 ` Gaute Hope
2016-02-28 14:26 ` Franz Fellner [this message]
2016-02-28 14:46 ` Franz Fellner
2016-02-28 15:46 ` David Bremner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456669181-astroid-0-hsim583msj-27330@TP_L520 \
--to=alpine.art.de@gmail.com \
--cc=eg@gaute.vetsj.com \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).