public IPythonModule GetOrCreate(string name, ModuleResolutionBase mrb)
            {
                var create = false;

                lock (_syncObj) {
                    if (_module != null)
                    {
                        return(_module);
                    }

                    if (!_creating)
                    {
                        create    = true;
                        _creating = true;
                    }
                }

                if (!create)
                {
                    return(null);
                }

                var module = mrb.CreateModule(name);

                lock (_syncObj) {
                    _creating = false;
                    _module   = module;
                    return(module);
                }
            }
示例#2
0
            public IPythonModule GetOrCreate(string name, ModuleResolutionBase mrb)
            {
                lock (_syncObj) {
                    if (_module != null)
                    {
                        return(_module);
                    }

                    var module = mrb.CreateModule(name);
                    _module = module;
                    return(module);
                }
            }