Thanks, we will try manual locking. On Thu, Aug 21, 2008 at 3:42 PM, Curt Hagenlocher <[EMAIL PROTECTED]>wrote:
> 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 >>>> Users@lists.ironpython.com >>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>>> >>>> >>> >>> _______________________________________________ >>> Users mailing list >>> Users@lists.ironpython.com >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> >>> >> >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com