Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sun, 12 Jan 2003 14:34:54 -0500 | From | Rob Wilkens <> | Subject | Re: any chance of 2.6.0-test*? |
| |
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/
| ![\](/images/icornerr.gif) |