summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/include/error.h
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@mongodb.com>2015-09-18 17:17:34 +1000
committerMichael Cahill <michael.cahill@mongodb.com>2015-09-18 17:17:34 +1000
commit881f00984ce2692b81154d5ea3d5fb589b484c70 (patch)
tree5a9b5aeaf3c6023457dd08dbb9e26150b45a7f14 /src/third_party/wiredtiger/src/include/error.h
parent250b05a6184b559dc5c2e3ee53c3183a70f47fd2 (diff)
downloadmongo-881f00984ce2692b81154d5ea3d5fb589b484c70.tar.gz
Import wiredtiger-wiredtiger-2.6.1-1119-g16e3e48.tar.gz from wiredtiger branch mongodb-3.2
Diffstat (limited to 'src/third_party/wiredtiger/src/include/error.h')
-rw-r--r--src/third_party/wiredtiger/src/include/error.h32
1 files changed, 13 insertions, 19 deletions
diff --git a/src/third_party/wiredtiger/src/include/error.h b/src/third_party/wiredtiger/src/include/error.h
index abffc02945e..e721855ce7c 100644
--- a/src/third_party/wiredtiger/src/include/error.h
+++ b/src/third_party/wiredtiger/src/include/error.h
@@ -35,10 +35,10 @@
} else \
ret = 0; \
} while (0)
-#define WT_ERR_BUSY_OK(a) \
- WT_ERR_TEST((ret = (a)) != 0 && ret != EBUSY, ret)
-#define WT_ERR_NOTFOUND_OK(a) \
- WT_ERR_TEST((ret = (a)) != 0 && ret != WT_NOTFOUND, ret)
+#define WT_ERR_ERROR_OK(a, e) \
+ WT_ERR_TEST((ret = (a)) != 0 && ret != (e), ret)
+#define WT_ERR_BUSY_OK(a) WT_ERR_ERROR_OK(a, EBUSY)
+#define WT_ERR_NOTFOUND_OK(a) WT_ERR_ERROR_OK(a, WT_NOTFOUND)
/* Return tests. */
#define WT_RET(a) do { \
@@ -55,14 +55,13 @@
if (a) \
return (v); \
} while (0)
-#define WT_RET_BUSY_OK(a) do { \
+#define WT_RET_ERROR_OK(a, e) do { \
int __ret = (a); \
- WT_RET_TEST(__ret != 0 && __ret != EBUSY, __ret); \
-} while (0)
-#define WT_RET_NOTFOUND_OK(a) do { \
- int __ret = (a); \
- WT_RET_TEST(__ret != 0 && __ret != WT_NOTFOUND, __ret); \
+ WT_RET_TEST(__ret != 0 && __ret != (e), __ret); \
} while (0)
+#define WT_RET_BUSY_OK(a) WT_RET_ERROR_OK(a, EBUSY)
+#define WT_RET_NOTFOUND_OK(a) WT_RET_ERROR_OK(a, WT_NOTFOUND)
+
/* Set "ret" if not already set. */
#define WT_TRET(a) do { \
int __ret; \
@@ -71,20 +70,15 @@
ret == 0 || ret == WT_DUPLICATE_KEY || ret == WT_NOTFOUND)) \
ret = __ret; \
} while (0)
-#define WT_TRET_BUSY_OK(a) do { \
- int __ret; \
- if ((__ret = (a)) != 0 && __ret != EBUSY && \
- (__ret == WT_PANIC || \
- ret == 0 || ret == WT_DUPLICATE_KEY || ret == WT_NOTFOUND)) \
- ret = __ret; \
-} while (0)
-#define WT_TRET_NOTFOUND_OK(a) do { \
+#define WT_TRET_ERROR_OK(a, e) do { \
int __ret; \
- if ((__ret = (a)) != 0 && __ret != WT_NOTFOUND && \
+ if ((__ret = (a)) != 0 && __ret != (e) && \
(__ret == WT_PANIC || \
ret == 0 || ret == WT_DUPLICATE_KEY || ret == WT_NOTFOUND)) \
ret = __ret; \
} while (0)
+#define WT_TRET_BUSY_OK(a) WT_TRET_ERROR_OK(a, EBUSY)
+#define WT_TRET_NOTFOUND_OK(a) WT_TRET_ERROR_OK(a, WT_NOTFOUND)
/* Return and branch-to-err-label cases for switch statements. */
#define WT_ILLEGAL_VALUE(session) \