forked from MoonsideGames/MoonWorks
				
			fix audio thread race condition on StaticAudio.GetInstance
							parent
							
								
									36ddb03d8f
								
							
						
					
					
						commit
						74ae295036
					
				| 
						 | 
				
			
			@ -272,22 +272,41 @@ namespace MoonWorks.Audio
 | 
			
		|||
		/// </summary>
 | 
			
		||||
		public StaticSoundInstance GetInstance(bool autoFree = true)
 | 
			
		||||
		{
 | 
			
		||||
			if (AvailableInstances.Count == 0)
 | 
			
		||||
			StaticSoundInstance instance;
 | 
			
		||||
 | 
			
		||||
			lock (AvailableInstances)
 | 
			
		||||
			{
 | 
			
		||||
				AvailableInstances.Push(new StaticSoundInstance(Device, this));
 | 
			
		||||
				if (AvailableInstances.Count == 0)
 | 
			
		||||
				{
 | 
			
		||||
					AvailableInstances.Push(new StaticSoundInstance(Device, this));
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				instance = AvailableInstances.Pop();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var instance = AvailableInstances.Pop();
 | 
			
		||||
			instance.AutoFree = autoFree;
 | 
			
		||||
			UsedInstances.Add(instance);
 | 
			
		||||
 | 
			
		||||
			lock (UsedInstances)
 | 
			
		||||
			{
 | 
			
		||||
				UsedInstances.Add(instance);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return instance;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		internal void FreeInstance(StaticSoundInstance instance)
 | 
			
		||||
		{
 | 
			
		||||
			instance.Reset();
 | 
			
		||||
			UsedInstances.Remove(instance);
 | 
			
		||||
			AvailableInstances.Push(instance);
 | 
			
		||||
 | 
			
		||||
			lock (UsedInstances)
 | 
			
		||||
			{
 | 
			
		||||
				UsedInstances.Remove(instance);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			lock (AvailableInstances)
 | 
			
		||||
			{
 | 
			
		||||
				AvailableInstances.Push(instance);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		protected override unsafe void Destroy()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue