aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/error_internal.h
diff options
context:
space:
mode:
authorGravatar Muxi Yan <mxyan@google.com>2017-03-12 18:33:47 -0700
committerGravatar Muxi Yan <mxyan@google.com>2017-03-12 18:33:47 -0700
commit43be708bb2a7b3c7dce8cc25059be3fce7228d66 (patch)
tree82217258fbf81514d5bf13a73d6501eb8fbde363 /src/core/lib/iomgr/error_internal.h
parent39a797387f1a7bbfd5cad235a90d1059bfddfdba (diff)
parent0b7bd20de4f0d219c399ef8c01c05026bf12da5d (diff)
Merge remote-tracking branch 'upstream/master' into fix-flush-read
Diffstat (limited to 'src/core/lib/iomgr/error_internal.h')
-rw-r--r--src/core/lib/iomgr/error_internal.h24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/core/lib/iomgr/error_internal.h b/src/core/lib/iomgr/error_internal.h
index 1c89ead4ed..fb4814e41f 100644
--- a/src/core/lib/iomgr/error_internal.h
+++ b/src/core/lib/iomgr/error_internal.h
@@ -35,18 +35,28 @@
#define GRPC_CORE_LIB_IOMGR_ERROR_INTERNAL_H
#include <inttypes.h>
-#include <stdbool.h>
+#include <stdbool.h> // TODO, do we need this?
-#include <grpc/support/avl.h>
+#include <grpc/support/sync.h>
+
+typedef struct grpc_linked_error grpc_linked_error;
+
+struct grpc_linked_error {
+ grpc_error *err;
+ uint8_t next;
+};
struct grpc_error {
gpr_refcount refs;
- gpr_avl ints;
- gpr_avl strs;
- gpr_avl times;
- gpr_avl errs;
- uintptr_t next_err;
+ uint8_t ints[GRPC_ERROR_INT_MAX];
+ uint8_t strs[GRPC_ERROR_STR_MAX];
+ uint8_t times[GRPC_ERROR_TIME_MAX];
+ uint8_t first_err;
+ uint8_t last_err;
gpr_atm error_string;
+ uint8_t arena_size;
+ uint8_t arena_capacity;
+ intptr_t arena[0];
};
bool grpc_error_is_special(grpc_error *err);