[AGENT++] Agent++ Thread Safety

Megan Smith megsmith2 at gmail.com
Wed May 21 20:39:16 CEST 2008


Hi Frank,

Thank you for your quick response.

In the documentation for mib->lock_mib() the mib lock is only held until the
mib object lock is acquired:

"While processing a (sub-)request the locking scheme is as follows: 1. This
MIB lock is acquired. 2. The MIB object is identified, which is responsible
for processing the sub-request. 3. The MIB objects lock (
MibEntry::start_synch()<http://www.agentpp.com/doc3.x/classThreadManager.html#42bcd26c71747a3d01afd2a407b7f12e>)
is acquired. 4. The MIB lock is released. 5. The sub-request is propagated
to the MIB object. 6. When finished, the MIB objects lock is released."

But the procedure you just suggested:

mib->lock_mib();
table->start_synch();
..some code modifying table content..
table->end_synch();
mib->unlock();

doesn't unlock the mib itself until the last step.  Which one is correct?
Or are they for different situations?


Thanks!
Megan


On 5/20/08, Frank Fock <fock at agentpp.com> wrote:
>
> Hi Megan,
>
> You are probably on the wrong track here. The AVL
> trees should not be modified in the AGENT++ code
> concurrently anywhere.
>
> Such modifications have to be protected by
>
> mib->lock_mib();
> ..some code modifying mib registration (AVL tree)..
> mib->unlock_mib();
>
> or
>
> mib->lock_mib();
> table->start_synch();
> ..some code modifying table content..
> table->end_synch();
> mib->unlock();
>
> Best regards,
> Frank
>
> Megan Smith wrote:
>
>> Hi,
>>
>> I posted this a few weeks ago and haven't heard any response yet.  We are
>> using agent++ and have been experiencing segmentation faults from some
>> corrupted memory in the mib tables during highly multi-threaded runs.
>>  After
>> running debugging utilities it appears that there are some static
>> variables
>> in the avl_map.cpp file that I can't find proper locks for anywhere.  Am I
>> missing something?
>>
>> Thank you for your help,
>> Megan
>> _______________________________________________
>> AGENTPP mailing list
>> AGENTPP at agentpp.org
>> http://lists.agentpp.org/mailman/listinfo/agentpp
>>
>
> --
> AGENT++
> http://www.agentpp.com
> http://www.mibexplorer.com
> http://www.mibdesigner.com
>



More information about the AGENTPP mailing list