private void SendEndWrapper(ReliableSessionMessage sendMessage, NativeCommon.IFabricAsyncOperationContext context) { try { // AppTrace.TraceSource.WriteNoise("NativeReliableSession.EndSend"); this.nativeReliableSession.EndSend(context); } finally { sendMessage.Unpin(); } }
private NativeCommon.IFabricAsyncOperationContext SendBeginWrapper( ReliableSessionMessage sendMessage, NativeCommon.IFabricAsyncOperationCallback callback) { try { var nativeSendMessage = sendMessage.Pin(this.nativeMessageDataFactory); // TODO: do we support empty messages? if (nativeSendMessage == null) { throw new ArgumentException(SR.Error_ReliableSession_EmptyMessage); } // AppTrace.TraceSource.WriteNoise("NativeReliableSession.BeginSend"); return(this.nativeReliableSession.BeginSend(nativeSendMessage, callback)); } catch { sendMessage.Unpin(); throw; } }