error: Document how to accumulate multiple errors

Backports commit 8d780f43921feb7fd8d0b58f779a22d1265f2378 from qemu
This commit is contained in:
Markus Armbruster 2018-02-17 20:49:03 -05:00 committed by Lioncash
parent f336fc39eb
commit 9398bd49fe
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -69,6 +69,23 @@
* But when all you do with the error is pass it on, please use
* foo(arg, errp);
* for readability.
*
* Receive and accumulate multiple errors (first one wins):
* Error *err = NULL, *local_err = NULL;
* foo(arg, &err);
* bar(arg, &local_err);
* error_propagate(&err, local_err);
* if (err) {
* handle the error...
* }
*
* Do *not* "optimize" this to
* foo(arg, &err);
* bar(arg, &err); // WRONG!
* if (err) {
* handle the error...
* }
* because this may pass a non-null err to bar().
*/
#ifndef ERROR_H