From: Johannes Weiner <hannes@cmpxchg.org>
To: "Peter T. Breuer" <ptb@inv.it.uc3m.es>
Cc: linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: time_is_after_jiffies misnomer
Date: Tue, 16 Dec 2008 21:33:47 +0100 [thread overview]
Message-ID: <20081216203347.GA22396@cmpxchg.org> (raw)
In-Reply-To: <200812161517.mBGFHUE07109@inv.it.uc3m.es>
On Tue, Dec 16, 2008 at 04:17:30PM +0100, Peter T. Breuer wrote:
> "Also sprach Johannes Weiner:"
> > On Tue, Dec 16, 2008 at 12:31:41PM +0100, Peter T. Breuer wrote:
> > >
> > > I thought at first that
> > >
> > > time_is_after_jiffies(foo)
> > >
> > > meant that the current time is later than foo jiffies.
> >
> > 'foo jiffies'?
>
>
> ?? What does that mean? Yes, "the current time is later than foo
> jiffies", is what I wrote. I don't understand why you query it. What I
> wrote is a perfectly normal english sentence. It means "if the current
> time is X and and the
Sorry, I forgot to remove that when I realized you were referring to
jiffies as a unit here. Don't worry, I got it.
> > It behaves like all the other time_(after|before) macros. "Compare a
> > given time T against some other time X".
>
> It's poor english. Yes, to an english speaker
>
> time_is_after_jiffies(foo)
>
> looks like
>
> the current time is later than foo jiffies
>
> Look at the two:
>
> the current time is later than foo jiffies
> | | | `/.
> time_is_after_jiffies(foo)
The only problem I see is the `is'. It should be called
time_after_jiffies()
But time doesn't refer to `the current time' in the first place! The
macro is not (meant to be) an English sentence.
'time' is the prefix for a group of symbols, a namespace if you will
and it stands for the first argument in all these macros. 'is_after'
is the relation. 'jiffies' the thing you compare with. It's an infix
operator used in prefix form.
The only problem that I see with the jiffies-comparing macros is the
`is'. They should be called time_after_jiffies() and
time_before_jiffies() etc.
> (I AM a native english speaker, and a very good one - please take this
> on board and pay attention to it; you'll find me quoted as the author
> of hundreds of technical articles on google :-).
They are probably written in a natural language.
> The mathematical "jiffies(foo)" for colloquial "foo jiffies" is the
> normal way of writing formal predicates. Like "colour(red)" for
> "red colour". This is a predicate.
I don't think there are many functions/macros in the (core-)kernel
that have the types they operate on encoded in their names.
So interpreting the macro the way you did makes no sense to me
regarding the code in context.
> > The banner comment above the macro group should have clarified the
> > misunderstanding, btw.
>
> No, it says nothing:
>
> * These four macros compare jiffies and 'a' for convenience.
>
> What's written above the individual macros is more explanatory, but
> it's the NAMES of the macros that are the wrong way round for english:
>
>
> /* time_is_before_jiffies(a) return true if a is before jiffies */
> #define time_is_before_jiffies(a) time_after(jiffies, a)
>
> It's time_is_before_jiffies(foo) that reads the wrong way round in
> english. It should be
>
>
> current_time_is_after_jiffies(foo).
How would you name the existing time_after() then?
Hannes
next prev parent reply other threads:[~2008-12-16 20:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-16 11:31 time_is_after_jiffies misnomer Peter T. Breuer
2008-12-16 14:46 ` Johannes Weiner
2008-12-16 15:17 ` Peter T. Breuer
2008-12-16 16:18 ` Andreas Schwab
2008-12-16 16:32 ` Peter T. Breuer
2008-12-16 19:29 ` Chris Friesen
2008-12-16 20:33 ` Johannes Weiner [this message]
2008-12-18 7:38 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2008-12-16 16:04 Peter T. Breuer
2008-12-16 16:13 ` Pekka Enberg
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081216203347.GA22396@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ptb@inv.it.uc3m.es \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.