You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Mib mib;
...

mib->lock_mib();

// code to lookup a MibEntry:
MibTable table = ...;

// enter protected region:
table->start_synch();

// now you can drop the Mib lock
mib->unlock_mib();

// do the real work on table
...

table->end_synch();

By default AGENT++ is a multi-threaded agent. Therefore access to each MibEntry in the a Mib has to be synchronized.

In order to reduce blocking of concurrent requests, AGENT++ uses a two level lockin:

  1. Mib instance level - locks the whole MIB
  2. MibEntry level - locks a scalar, sub-tree, or table

As tables and complex (sub-tree) entries may contain also MibEntry objects, for example scalars, additional levels can be implemented by the user.

In any case, the locking procedure must start with the following steps:

 

 

 

  • No labels