[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Are Goto's in the Linux Kernel necessarily bad?




It depends on why they're being used.  In the kernel, they are being used 
for error handling, and pretty much only error handling in complex 
situations.

A typical situation is setting up a data structure or some hardware that 
requires multiple steps, like say 10.  If any step goes wrong, you cannot 
continue.  To do this "properly", it would require a 10 deep nested 
if/then/else statement.  They get nasty around 3.  The goto way is much 
easier to read and modify.  Plus, it's faster executing (~75 extra 
machine instructions to do a 10 deep), which matters  when some of these 
functions are executing many times a second (sched.c).

Any other use of a goto usually means bad code or intentionally 
obfuscated.

Mike

On Sat, 15 Feb 2003, Jonathan Drews wrote:

> I have heard that there are many goto statements in the Linux kernel. 
> The accepted convention is that goto statements are a source of 
> programming errors and therefore inherently bad. Is this true and will 
> the use of these goto statements make the Linux kernel  unstable? 
> 
> 
> 							TIA,
> 
> 							Jonathan
> 
> -
> To unsubscribe, send email to majordomo@silug.org with
> "unsubscribe silug-discuss" in the body.
> 




-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.