[asterisk-dev] [Code Review] 3184: Create sorcery instance registry

George Joseph reviewboard at asterisk.org
Thu Feb 6 11:00:23 CST 2014

This is an automatically generated e-mail. To reply, visit:

(Updated Feb. 6, 2014, 10 a.m.)

Review request for Asterisk Developers.


Addressed latest issues...
registry containers are now static.
compare and hash functions follow template from wiki.
sorcery registry is now rwlock instead of mutex.
ast_sorcery_unref checks ref count and unregisters instance if no consumers are left.

Bugs: ASTERISK-22537

Repository: Asterisk


Create sorcery instance registry as a precursor to creating a generic dialplan function that can retrieve parameters from a sorcery-based config file.

ast_sorcery_init now creates a hashtab as a registry.
ast_sorcery_open now checks the hashtab for an existing sorcery instance matching the caller's module name.  If it finds one, it bumps the refcount and returns it.  If not, it creates a new sorcery instance, adds it to the hashtab, then returns it.
ast_sorcery_retrieve_by_module_name is a new function that does a hashtab lookup by module name.  It can be called by the future dialplan function.

A side effect of this patch is that a module can only have 1 sorcery instance (because it's the key for the hashtab).  res_pjsip/config_system needed a small change to share the main res_pjsip sorcery instance.

Diffs (updated)

  branches/12/res/res_pjsip/include/res_pjsip_private.h 407566 
  branches/12/res/res_pjsip/config_system.c 407566 
  branches/12/res/res_pjsip.c 407566 
  branches/12/main/sorcery.c 407566 
  branches/12/include/asterisk/sorcery.h 407566 

Diff: https://reviewboard.asterisk.org/r/3184/diff/


Made sure that users of sorcery (mostly res_pjsip) continued to load their configs correctly.
Made sure there were no ill effects on res_pjsip from config_system sharing the same sorcery instance as the rest of the pjsip infrastructure.
Made sure that config_system was properly marked as 'not reloadable' and that it was maintaining it's original values when res_pjsip was reloaded.


George Joseph

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140206/340f9b40/attachment.html>

More information about the asterisk-dev mailing list