diff options
author | Michael Cahill <michael.cahill@mongodb.com> | 2015-09-18 17:17:34 +1000 |
---|---|---|
committer | Michael Cahill <michael.cahill@mongodb.com> | 2015-09-18 17:17:34 +1000 |
commit | 881f00984ce2692b81154d5ea3d5fb589b484c70 (patch) | |
tree | 5a9b5aeaf3c6023457dd08dbb9e26150b45a7f14 /src/third_party/wiredtiger/src/include/error.h | |
parent | 250b05a6184b559dc5c2e3ee53c3183a70f47fd2 (diff) | |
download | mongo-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.h | 32 |
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) \ |