Metze,

 > > - Get rid of the register_subsystem() and register_backend() functions. 
 > 
 > why? there was a very good reason for adding them.

indeed.

I should probably explain for everyone why we changed quite a while
ago to register_backend() instead of having functions like
auth_register().

The problem with having subsystem specific names for registration
functions is that it makes it impossible to add a new type of
subsystem via a loadable module. 

Imagine you want to have a module that adds a 'foo' subsystem, and you
want another module that registers itself as a instance of 'foo' when
the 'foo' module is loaded. If you use foo_register() as the function
name, then the 2nd module has no way to load. If you use
regisier_backend("foo", ...) then the module can load, then get a
useful error message telling it that it cannot register as a 'foo'
instance, in which case it might decide to do the work itself, or
register itself somewhere else, or panic.

So we decided to make the register_backend() and similar functions
core functions, and to make subsystem names a constant string. That
gives us all the same functionality, but allows whole new subsystems
to be loaded as modules.

Cheers, Tridge

Reply via email to