Re: Extending spin lock concept to a table column

"andre robalo" <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Thank you very much for your answer.

>> More seriously, if data is NULL, then you can't access data->data!

Of course, stupid mistake!

Last question: when adding a new row , the spinlock column will be null! How
can I initialize the spinlock column when a row is created ?

Something like:

if(data != NULL)
        data->data.voidp ++;
else
        // How can I set the column value to 1 ??????????????????????????

Robalo!




On 10/30/07, Dave Shield <[email protected]> wrote:
>
> On 30/10/2007, andre robalo <[email protected]> wrote:
> > In all examples i saw, the use of a spin lock object is only by scalar
> > objects.
> > I have a situation where I need to use this concept, but applied to a
> table.
>
> A spin lock is typically *implemented* as a scalar object,
> but it's perfectly common to use that (scalar) spin lock to protect a
> table.
>
> Just retrieve the scalar spinlock value at the same time as the table
> contents that you are interested in - and then include the (scalar)
> spinlock assignment as part of the update request:
>
>     $   snmpget localhost   snmpSetSerialNo.0   ifAdminStatus.2
>     snmpSetSerialNo.0 = 12345
>     ifAdminStatus.2= up(1)
>
>     $  snmpset localhost   snmpSetSerialNo.0 i 12345 ifAdminStatus.2 i 2
>     snmpSetSerialNo.0 = 12345
>     ifAdminStatus.2= down(2)
>
>
> You could implement the spinlock as a column object, but there's
> typically no real need.
>
>
> > In this situation, i would have a table column that is a spinlock
> > (testAndIncr object).
> >
> > My first question is : Is this possible ?
>
> Yes - it is possible.
> You probably can't use the spinlock helper, which is designed
> to implement a scalar object.   But there's nothing special about
> the code.  You could perfectly easily implement this as an
> integer column object.
>    The only special thing about a TestAndIncr object, is the check
> that the assigned value matches the current one, and incrementing
> this value at the end of a successful SET request.
>
>
> > Am I doing anything wrong in my code?
>
> In general, this looks mostly OK.
> Two things spring out though:
>
>
>
> >         case MODE_SET_ACTION:
> >                                         data =
> > netsnmp_table_data_set_find_column(rowData,COLUMN_SPINLOCK);
> >                                         if(data != NULL)
> >                                                 data->data.voidp ++;
>
> Shouldn't you be incrementing the value that voidp points to,
> rather than the pointer itself?
>
> >                                         else
> >                                                 data->data.voidp = 0;
>
> More seriously, if data is NULL, then you can't access data->data!
>
> Dave
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.