[fix] 外部调用者可能需要直接使用内部申请的OwnerPacket,所以这里不释放
This commit is contained in:
parent
924229899c
commit
40f7560753
|
@ -1,5 +1,4 @@
|
|||
using System.Net.Sockets;
|
||||
using NewLife.Log;
|
||||
using NewLife.Log;
|
||||
using NewLife.Net;
|
||||
using NewLife.Threading;
|
||||
|
||||
|
@ -13,7 +12,7 @@ public class RedisReplication : RedisBase, IRedisCluster, IDisposable
|
|||
IList<IRedisNode> IRedisCluster.Nodes => Nodes.Select(x => (IRedisNode)x).ToList();
|
||||
|
||||
/// <summary>节点改变事件</summary>
|
||||
public event EventHandler NodeChanged;
|
||||
public event EventHandler? NodeChanged;
|
||||
|
||||
/// <summary>集群节点</summary>
|
||||
public RedisNode[]? Nodes { get; protected set; }
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
using System.Buffers;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Security;
|
||||
using System.Net.Sockets;
|
||||
using System.Security.Authentication;
|
||||
|
@ -690,8 +689,9 @@ public class RedisClient : DisposeBase
|
|||
if (rs is TResult rs2) return rs2;
|
||||
if (TryChangeType(rs, typeof(TResult), out var target))
|
||||
{
|
||||
// 释放内部申请的OwnerPacket
|
||||
rs.TryDispose();
|
||||
//!!! 外部调用者可能需要直接使用内部申请的OwnerPacket,所以这里不释放
|
||||
//// 释放内部申请的OwnerPacket
|
||||
//rs.TryDispose();
|
||||
return (TResult?)target;
|
||||
}
|
||||
|
||||
|
@ -727,8 +727,9 @@ public class RedisClient : DisposeBase
|
|||
if (rs == null) return false;
|
||||
if (TryChangeType(rs, typeof(TResult), out var target))
|
||||
{
|
||||
// 释放内部申请的OwnerPacket
|
||||
rs.TryDispose();
|
||||
//!!! 外部调用者可能需要直接使用内部申请的OwnerPacket,所以这里不释放
|
||||
//// 释放内部申请的OwnerPacket
|
||||
//rs.TryDispose();
|
||||
value = (TResult?)target;
|
||||
return true;
|
||||
}
|
||||
|
@ -788,8 +789,9 @@ public class RedisClient : DisposeBase
|
|||
if (rs is TResult rs2) return rs2;
|
||||
if (TryChangeType(rs, typeof(TResult), out var target))
|
||||
{
|
||||
// 释放内部申请的OwnerPacket
|
||||
rs.TryDispose();
|
||||
//!!! 外部调用者可能需要直接使用内部申请的OwnerPacket,所以这里不释放
|
||||
//// 释放内部申请的OwnerPacket
|
||||
//rs.TryDispose();
|
||||
return (TResult?)target;
|
||||
}
|
||||
|
||||
|
@ -939,8 +941,9 @@ public class RedisClient : DisposeBase
|
|||
var rs = list[i];
|
||||
if (rs != null && TryChangeType(rs, ps[i].Type, out var target) && target != null)
|
||||
{
|
||||
// 释放内部申请的OwnerPacket
|
||||
rs.TryDispose();
|
||||
//!!! 外部调用者可能需要直接使用内部申请的OwnerPacket,所以这里不释放
|
||||
//// 释放内部申请的OwnerPacket
|
||||
//rs.TryDispose();
|
||||
list[i] = target;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Intrinsics.Arm;
|
||||
|
||||
using NewLife.Caching;
|
||||
using NewLife.Log;
|
||||
using Xunit;
|
||||
|
@ -105,14 +102,20 @@ public class HashTest
|
|||
var hash = _redis.GetDictionary<EventInfo>(key);
|
||||
Assert.NotNull(hash);
|
||||
|
||||
var l = hash as RedisHash<String, String>;
|
||||
var rh = hash as RedisHash<String, EventInfo>;
|
||||
|
||||
foreach(var item in l.GetAll())
|
||||
foreach (var item in rh.GetAll())
|
||||
{
|
||||
XTrace.WriteLine(item.Key);
|
||||
}
|
||||
|
||||
l["0"] = "0";
|
||||
rh["0"] = new EventInfo { EventId = "1234", EventName = "Stone" };
|
||||
}
|
||||
|
||||
class EventInfo
|
||||
{
|
||||
public String? EventId { get; set; }
|
||||
public String? EventName { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue