Re: any chance of 2.6.0-test*?

Rob Wilkens
2003-01-12T19:30:14Z

Minor change to my original message below.. I left a line out of a code
change suggestion.

On Sun, 2003-01-12 at 14:34, Rob Wilkens wrote:
> 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;
> }
> }
oops - Yes, I forgot to add one line here (my point remains the same:
spin_lock(&tty_lock.lock);
> 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