As things stand now, I think you'll need either some kind of manual locking or you'll need a different heuristic to tell you whether or not the module has finished loading. On Thu, Aug 21, 2008 at 7:20 AM, Kamil Dworakowski <[EMAIL PROTECTED]>wrote:
> We want Resolve One to start quicker. We have found large speedups by > delaying importing of some modules. > > This is implemented by moving some import statements into bodies of methods > and function, so that the modules are imported lazily when they are actually > needed. Since Resolver One runs many threads clashes happen. > > Kamil > > > > On Thu, Aug 21, 2008 at 1:53 PM, Curt Hagenlocher <[EMAIL PROTECTED]>wrote: > >> What's the scenario under which you want to do this? Is there a fixed set >> of modules being imported by your application or is the list not known until >> runtime? >> >> The behavior you describe with respect to sys.modules is identical to that >> in CPython. In fact, it's required in order to resolve circular imports. >> Without it, if module A were to import module B and module B imported module >> A, you'd end up with infinite recursion. >> >> Where IronPython is "worse" than CPython in this regard is that it takes >> us longer to import a module. This increases the chance for a collision in >> an application where modules may be imported from multiple threads. >> >> On Thu, Aug 21, 2008 at 5:11 AM, Kamil Dworakowski < >> [EMAIL PROTECTED]> wrote: >> >>> We are trying parallel imports, which somtimes fail with ImportError >>> (ipy 1.1.1). This happens when one thread attempts to import a module which >>> is being imported on a different thread. The number of such risky imports is >>> not high, and we deal with this by catching the exception and retrying. >>> >>> What do you think? Is it a wrong thing to do? I would like to avoid >>> locking. >>> >>> I have just glimpsed over the IronPython source. Does the problem here is >>> that when one thread starts to import a module it inserts an emty entry into >>> sys.modules, thus other threads get None (or ImportError when using "import >>> from" statement) until the module is fully imported? >>> >>> Kamil Dworakowski >>> Resolver Systems Ltd >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> >>> >> >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
