Пример #1
0
        private void HandleRadsServiceSuspending(object sender, EventArgs eventArgs)
        {
            LoadingOperation(() => {
                logger.Info("Suspending LoL File System " + this.projectType);

                foreach (var kvp in handlesByNode)
                {
                    var handle = kvp.Value;
                    suspendedHandleContexts.Add(new SuspendedHandleContext(handle.Node.GetPath(), handle));
                    handle.BeginReset();
                }
                handlesByNode.Clear();

                // Free reference to project so that rads service can free file handle
                if (projectReference != null)
                {
                    projectReference.Dispose();
                    projectReference = null;
                }

                foreach (var kvp in archiveReferencesById)
                {
                    foreach (var reference in kvp.Value)
                    {
                        reference.Dispose();
                    }
                }
                archiveReferencesById.Clear();
            });
        }
Пример #2
0
 // Assumes thread safety from ReadOperation
 private RiotProject GetProject()
 {
     if (projectReference == null)
     {
         lock (initializationLock) {
             if (projectReference == null)
             {
                 projectReference = radsService.GetProjectReference(projectType);
             }
         }
     }
     return(projectReference.Value);
 }