コード例 #1
0
ファイル: MySqlPool.cs プロジェクト: GodLesZ/svn-dump
		public void ReleaseConnection(Driver driver) {
			lock (((ICollection)this.inUsePool).SyncRoot) {
				if (this.inUsePool.Contains(driver)) {
					this.inUsePool.Remove(driver);
				}
			}
			if (driver.IsTooOld() || this.beingCleared) {
				driver.Close();
			} else {
				lock (((ICollection)this.idlePool).SyncRoot) {
					this.idlePool.Enqueue(driver);
				}
			}
			Interlocked.Increment(ref this.available);
			this.autoEvent.Set();
		}
コード例 #2
0
		public static void SetDriverInTransaction(Driver driver) {
			lock (driversInUse.SyncRoot) {
				driversInUse[driver.CurrentTransaction.BaseTransaction.GetHashCode()] = driver;
			}
		}
コード例 #3
0
ファイル: MySqlPool.cs プロジェクト: GodLesZ/svn-dump
		public void RemoveConnection(Driver driver) {
			lock (((ICollection)this.inUsePool).SyncRoot) {
				if (this.inUsePool.Contains(driver)) {
					this.inUsePool.Remove(driver);
					Interlocked.Increment(ref this.available);
					this.autoEvent.Set();
				}
			}
			if (this.beingCleared && (this.NumConnections == 0)) {
				MySqlPoolManager.RemoveClearedPool(this);
			}
		}
コード例 #4
0
ファイル: MySqlPoolManager.cs プロジェクト: GodLesZ/svn-dump
		public static void RemoveConnection(Driver driver) {
			MySqlPool pool = driver.Pool;
			if (pool != null) {
				pool.RemoveConnection(driver);
			}
		}