[erlang-questions] How to extend mensia lock to support conditionally lock?
Ulf Wiger
ulf@REDACTED
Thu Jul 24 13:19:06 CEST 2008
I don't think you should hack mnesia for that. A simple wrapper
function will do nicely.
BR,
Ulf W
2008/7/23, devdoer bird <devdoer2@REDACTED>:
> HI:
>
> I want to extend mnesia 's lock to add this function
> "mnesia:lock(LockItem,LockType,ConditionFun)" .
>
> This function works in this way: If a table 's record passes the
> ConditionFun test,the the record is locked.
>
> Eg.
> I have a user table with the record: -record(user,{name,age}).
>
> I want to lock the user's whose name begines with 'a' ,I can code using my
> customized " mnesia:lock(LockItem,LockType,ConditionFun)"
>
> like this:
>
> ConditionFun=fun(U)->
> if
> U#user.name=='a' -> true;
> true->false
> end
> end
> mnesia:lock(user,write,ConditionFun).
>
> that is I want to lock part of the table.
>
> Have anyone done this before? How shall I extend the mensia lock? Any
> information will be helpful, I 'm quite unfamiliar with mnesia lock
> system.
>
More information about the erlang-questions
mailing list