git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [RFC PATCH 0/5] builtin/grep.c: fix a tiny logic flaw
@ 2019-02-12 22:26 Rasmus Villemoes
  2019-02-12 22:26 ` [RFC PATCH 1/5] builtin/grep.c: change todo_* variables to unsigned Rasmus Villemoes
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Rasmus Villemoes @ 2019-02-12 22:26 UTC (permalink / raw)
  To: git; +Cc: Rasmus Villemoes

Background: I noticed that the condition in add_work() for when the
producer could add a new item was oddly different from the other
conditions on the todo_* bookkeeping variables - namely, in the other
cases we want todo_a != todo_b, whereas in add_work the condition is
todo_a+1!=todo_b. Another hint that something is slightly off is that
the code would break down if TODO_SIZE was set to 1.

The practical effect is negligible, and fixing it seems to be a bit
involved, hence probably not worth the churn - and if that's the
verdict, I suggest adding a comment in add_work() for future readers
and/or people who copy the producer/consumer logic to their own code.

Rasmus Villemoes (5):
  builtin/grep.c: change todo_* variables to unsigned
  builtin/grep.c: refactor loop in work_done() slightly
  builtin/grep.c: add shorthand for &todo[todo_end] in add_work()
  builtin/grep.c: add todo_item helper
  builtin/grep.c: fix fence-post error in add_work()

 builtin/grep.c | 40 ++++++++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 16 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-02-12 22:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-12 22:26 [RFC PATCH 0/5] builtin/grep.c: fix a tiny logic flaw Rasmus Villemoes
2019-02-12 22:26 ` [RFC PATCH 1/5] builtin/grep.c: change todo_* variables to unsigned Rasmus Villemoes
2019-02-12 22:26 ` [RFC PATCH 2/5] builtin/grep.c: refactor loop in work_done() slightly Rasmus Villemoes
2019-02-12 22:26 ` [RFC PATCH 3/5] builtin/grep.c: add shorthand for &todo[todo_end] in add_work() Rasmus Villemoes
2019-02-12 22:26 ` [RFC PATCH 4/5] builtin/grep.c: add todo_item helper Rasmus Villemoes
2019-02-12 22:26 ` [RFC PATCH 5/5] builtin/grep.c: fix fence-post error in add_work() Rasmus Villemoes

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.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).