From: Stefan Sperling Subject: Re: tog yield commit reverted To: Martin Pieuchot Cc: gameoftrees@openbsd.org Date: Tue, 4 Feb 2020 12:38:27 +0100 On Tue, Feb 04, 2020 at 12:04:25PM +0100, Martin Pieuchot wrote: > That suggests that the "next match" isn't correctly communicated between > the two threads. Could you point me to the piece of code responsible for > that? There is no explicit signal for this. The main thread sets 'search_next_done' when it has found a matching commit in its list of commits. 2080 err = match_commit(&have_match, entry->id, entry->commit, 2081 &view->regex); 2082 if (err) 2083 break; 2084 if (have_match) { 2085 view->search_next_done = 1; 2089 The log thread performs the same matching and simply stops adding more commits as soon as a match is found, assuming the main thread will eventually see and match the commit which the log thread has added to the list. Pressing 'n' unconditionally sets search_next_done to zero, which could be why 'n' triggers a bug?