Re: return values of backend sub-main functions
| От | Peter Eisentraut |
|---|---|
| Тема | Re: return values of backend sub-main functions |
| Дата | |
| Msg-id | 1340105476.26286.17.camel@vanquo.pezone.net обсуждение исходный текст |
| Ответ на | Re: return values of backend sub-main functions (Peter Eisentraut <peter_e@gmx.net>) |
| Ответы |
Re: return values of backend sub-main functions
Re: return values of backend sub-main functions |
| Список | pgsql-hackers |
On ons, 2012-01-18 at 21:21 +0200, Peter Eisentraut wrote: > On lör, 2012-01-07 at 16:41 -0500, Tom Lane wrote: > > Peter Eisentraut <peter_e@gmx.net> writes: > > > I suggest that we change PostgresMain(), PostmasterMain(), BackendRun(), > > > WalSenderMain(), and WalSndLoop() to return void as well. > > > > I agree this code is not very consistent or useful, but one question: > > what should the callers do if one of these functions *does* return? > > I was thinking of a two-pronged approach: First, add > __attribute__((noreturn)) to the functions. This will cause a suitable > compiler to verify on a source-code level that nothing actually returns > from the function. And second, at the call site, put an abort(); /* > not reached */. Together, this will make the code cleaner and more > consistent, and will also help the compiler out a bit about the control > flow. Patch for 9.3 attached.
Вложения
В списке pgsql-hackers по дате отправления: