bool tryAllocate(out T message) { int bufferId; int bufferOffset; int bufferSize; byte[] bufferHandle; if (bufferManager.TryAllocateBuffer(out bufferId, out bufferOffset, out bufferSize, out bufferHandle)) { message = producer.Get(); message.SetBuffer(bufferManager, bufferHandle, bufferId, bufferOffset, bufferSize); message.BufferAssigned(); return(true); } message = null; return(false); }