Re: any chance of 2.6.0-test*?

From: Rob Wilkens (robw@optonline.net)
Date: Sun Jan 12 2003 - 14:34:54 EST


Linus,

I'm REALLY opposed to the use of the word "goto" in any code where it's
not needed. OF course, I'm a linux kernel newbie, so I'm in no position
to comment

Let me comment below the relevant code snippet below as to how I would
change it:

On Sun, 2003-01-12 at 14:15, Linus Torvalds wrote:
> if (spin_trylock(&tty_lock.lock))
> goto got_lock;
> if (tsk == tty_lock.lock_owner) {
> WARN_ON(!tty_lock.lock_count);
> tty_lock.lock_count++;
> return flags;
> }
> spin_lock(&tty_lock.lock);
> got_lock:
> WARN_ON(tty_lock.lock_owner);
                       <etc...>

I would change it to something like the following (without testing the
code through a compiler or anything to see if it's valid):

                        if (!(spin_trylock(&tty_lock.lock))){
                                if (tsk ==tty_lock.lock_owner){
                                        WRAN_ON(!tty_lock.lcok_count);
                                        tty_lock.lock_count++;
                                        return flags;
                                }
                        }
                        WARN_ON(tty_lock.lock_owner);
                        <etc...>

Am I wrong that the above would do the same thing without generating the
sphagetti code that a goto would give you. Gotos are BAD, very very
bad. Please note also that the two if statements above could probably
even be combined further into one statement by using a short circuit &&
in the if.

If I'm misinterpreting the original code, then forgive me.. I just saw
a goto and gasped. There's always a better option than goto.

-Rob

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jan 15 2003 - 22:00:41 EST