From: David B. <dav...@da...> - 2008-01-14 11:57:42
|
The problem that you describe is almost more of linking issue than a Swig issue. If mylib.so has been properly built as a shared library, then it should only be loaded once regardless of how many Swig extension modules end up using it. There are some ways to investigate this. For example, % env LD_DEBUG=files python You might also dump the process memory map (on linux) % cat /proc/pid/maps and see if your shared library is listed multiple times. Finally, don't forget to investigate the Python variable sys.getdlopenflags (). You might have to change this: import sys, dl sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL) Cheers, Dave On Jan 14, 2008, at 4:05 AM, Nicola Jean wrote: > Sorry for the long delay in replying. The problem with my project > is that each .py/.so swig generated module seems to be linked to a > different instance of the main c++ library(mylib.so). Something > like this : > > a.py b..py c.py > | | | > _a.so _b.so _c.so > | | | > mylib.so mylib.so mylib.so > > Therefore when I set the singleton in one of my modules, the static > value is not seen by the other modules. > This might be due to the fact that each module is build separately. > What I'd like to have is something like this instead: > > a.py b..py c.py > | | | > _a.so _b.so _c.so > \ | / > mylib.so > > Anyone knows how I can do this with swig generated files? > Thanks Forward > N.Jean > > On 08/01/2008, Nitro <ni...@dr...> wrote: Am 08.01.2008, > 10:36 Uhr, schrieb Nicola Jean <nic...@gm...>: > > > I have already submitted my problem to the mailing list but I didn't > > receive > > any answer. I'll try to rephrase it: > > I have a big python module importing different swig-exported > modules, > > each > > linking to the same library mylib.so. > > Can I use this library to share information between the modules? > In other > > words, if from one module I set a mylib static variable > (singleton) to a > > certain value how can I be sure that all the other modules will > be using > > that value? If needed I can try to recreate a small example > showing what > > I > > want to do. > > Yes. This should work. At least it does on windows with .dlls. > > -Matthias > > ---------------------------------------------------------------------- > --- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/ > marketplace_______________________________________________ > Swig-user mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-user |