You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,40 @@
|
||||
//------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//------------------------------------------------------------
|
||||
namespace System.ServiceModel.Channels
|
||||
{
|
||||
interface IMsmqMessagePool : IDisposable
|
||||
{
|
||||
MsmqInputMessage TakeMessage();
|
||||
void ReturnMessage(MsmqInputMessage message);
|
||||
}
|
||||
|
||||
sealed class MsmqInputMessagePool
|
||||
: SynchronizedDisposablePool<MsmqInputMessage>, IMsmqMessagePool
|
||||
{
|
||||
int maxPoolSize;
|
||||
|
||||
internal MsmqInputMessagePool(int maxPoolSize)
|
||||
: base(maxPoolSize)
|
||||
{
|
||||
this.maxPoolSize = maxPoolSize;
|
||||
}
|
||||
|
||||
MsmqInputMessage IMsmqMessagePool.TakeMessage()
|
||||
{
|
||||
MsmqInputMessage message = this.Take();
|
||||
if (null == message)
|
||||
message = new MsmqInputMessage();
|
||||
return message;
|
||||
}
|
||||
|
||||
void IMsmqMessagePool.ReturnMessage(MsmqInputMessage message)
|
||||
{
|
||||
if (!this.Return(message))
|
||||
{
|
||||
MsmqDiagnostics.PoolFull(this.maxPoolSize);
|
||||
message.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user