Messages in this thread | | | From | Oliver Neukum <> | Subject | Re: any chance of 2.6.0-test*? | Date | Sun, 12 Jan 2003 23:43:41 +0100 |
| |
Am Sonntag, 12. Januar 2003 23:22 schrieb Rob Wilkens: > On Sun, 2003-01-12 at 17:06, Oliver Neukum wrote: > > Please don't do such things. The next time locking is changed and a lock > > is needed here, some poor guy has to go through that and change all > > back to goto. > > This may not be applicable here, but as a general rule, don't do it. > > I speak from experience. > > > > As for efficiency, that is the compiler's job. > > I say "please don't use goto" and instead have a "cleanup_lock" function > and add that before all the return statements.. It should not be a > burden. Yes, it's asking the developer to work a little harder, but the > end result is better code.
It's code that causes added hardship for anybody checking the locking. It becomes impossible to see whether locks are balanced and turns into a nightmare as soon as you need error exits from several depths of locking or with and without memory to be freed.
Please listen to experience.
err_out_buffer: kfree(buffer); err_out_nobuffer: up(&sem); err_out_nolock: return err;
is pretty much the only readable construction.
Regards Oliver
- 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/
| |