-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines, Storage Engines - Foundations
-
None
-
None
In the current implementation, WT_ERR_MSG jumps to the err label unconditionally, even if ret is 0. Similarly, WT_RET_MSG returns unconditionally, even if the return value is 0.
This behavior is rather surprising and inconsistent with the current semantics of WT_ERR and WT_RET. We should make the semantics consistent. Ideally, we could just take WT_ERR_MSG_CHK and just let that be the semantics for WT_ERR_MSG.
For the few cases that depend on macros such as WT_RET_MSG to return unconditionally, we could introduce a new macro, such as WT_RET_MSG_ALWAYS.