[C++-sig] Indexing suite v2 multiple module problem

Roman Yakovenko roman.yakovenko at gmail.com
Wed Jul 25 10:44:08 CEST 2012


On Wed, Jul 25, 2012 at 11:03 AM, John Reid <j.reid at mail.cryst.bbk.ac.uk> wrote:
> Hi,
>
> I'm using a version of the indexing suite I believe I copied from
> Roman's codebase some time ago. I've recently refactored my project into
> multiple modules and now I'm have some runtime errors when iterating
> over sequences in python. At runtime I get the cryptic message:
>
> RuntimeError: get
>
> It is proving a little difficult to track down as it only happens on my
> server not on my development machine although it is reproducible every
> time. Not all std::vectors that are exposed trigger the error. If I
> change the order that my C++ modules are imported then the std::vector
> that triggers the error changes.
>
> I'm building a debug python on my server to try to investigate further
> but meanwhile I wonder if anyone had any suggestions or had seen this
> sort of thing before?
>
> Also where is the latest version of the indexing suite v2 code that I
> could use?

Do you use dlopen?

import sys
sys.setdlopenflags(RTLD_NOW | RTLD_GLOBAL)

In multi-module environment you have to share boost python registry.

I would start with this. You can google for "boost python dlopen" and
find a lot of information about the subject.

If I remember right, Py++ contains (generates) some code that queries
the registry and registers the class conditionally.

HTH,
Roman


More information about the Cplusplus-sig mailing list