|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-cim
Re: [Xen-cim] Emailing: libxen.diff 
| 
Ewan Mellor wrote:
[snip]
 
Having xen_init and xen_fini gives you the most flexibility -- if you
know that you're in a threaded environment, or are loading as a dynamic
module, then you can wrap them up appropriately, and if you're running
in a statically compiled program, then you can just call them at the top
and bottom of main().
For your particular problem, I think you just need to push the mutex up
into the CIM provider rather than libxen, and everything should be fine.
 
We can handle this in the providers -- with some changes to the existing 
structure.  Currently we have this: 
               --------------------------
               |            cimom              |
               --------------------------
               -----------      -----------
               | prov1    |      | provN    |
               | xenutils |      | xenutils |
               -----------      -----------
               --------------------------
               |        libxenapi              |
               --------------------------
all in one (cimom) process.  Recall that the cimom dynamically loads the 
target provider when receiving a request and dynamically unloads the 
provider after a cimom-configured interval of inactivity.
Currently xenutils is a libtool convenience library, meaning all objects 
in the lib are linked into each provider.  We can change xenutils to a 
shared lib and wrap xen_[init|fini] there.  xenutils contains enough 
code that this should be done anyway, decreasing the providers' memory 
footprint. 
I can take care of this when cleaning up our session handling.  As 
Gareth mentioned in a subsequent email in this thread, we'll start 
making use of the provider Initialize and Cleanup routines.  Now that 
we're crawling, it's time to start walking with some stability :-). 
Jim
_______________________________________________
Xen-cim mailing list
Xen-cim@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-cim
 | 
 |  | 
  
    |  |  |