diff --git a/src/eGLock.erl b/src/eGLock.erl index d59a905..785aeda 100644 --- a/src/eGLock.erl +++ b/src/eGLock.erl @@ -278,13 +278,14 @@ transaction(EtsTabKeys, MFAOrFun, TimeOut) -> try EtsTabValue = #{OneGetKey => getEtsTabValue(OneEtsTab, OneKey, OneDefValue) || {OneEtsTab, OneKey} = OneGetKey := OneDefValue <- KeysMap}, case transactionApply(MFAOrFun, EtsTabValue) of - {ok, Ret, ChangeEtsTab} -> - [changeEtsTabValue(OneEtsTab, OneKey, ChangeValue) || {OneEtsTab, OneKey} := ChangeValue <- ChangeEtsTab], + {alterTab, AlterTab} -> + [changeEtsTabValue(OneEtsTab, OneKey, ChangeValue) || {OneEtsTab, OneKey} := ChangeValue <- AlterTab], + ok; + {alterTab, Ret, AlterTab} -> + [changeEtsTabValue(OneEtsTab, OneKey, ChangeValue) || {OneEtsTab, OneKey} := ChangeValue <- AlterTab], Ret; - {ok, Ret} -> - Ret; - {error, Err} -> - Err + OtherRet -> + OtherRet end catch throw:Throw -> Throw;