[erlang-questions] How to extend mensia lock to support conditionally lock?

devdoer bird devdoer2@REDACTED
Thu Jul 24 15:11:37 CEST 2008


The example I give is not good.,but I just need hack the mnesia lock :(.

I want to lock part of the table and which part is controled by the record's
key's value range .Currently mnesia  only support record lock and table
lock.


2008/7/24, Ulf Wiger <ulf@REDACTED>:
>
> 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.
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080724/d11aa156/attachment.htm>


More information about the erlang-questions mailing list