[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.

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