Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
867cf620
M
milvus
项目概览
milvus
/
milvus
大约 1 年 前同步成功
通知
261
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
867cf620
编写于
2月 27, 2022
作者:
Y
yah01
提交者:
GitHub
2月 27, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Extract() method to take out C pointer from BytesConverter without releasing it (#15614)
Signed-off-by:
N
yah01
<
yah2er0ne@outlook.com
>
上级
6a48071a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
4 deletion
+11
-4
internal/util/cgoconverter/bytes_converter.go
internal/util/cgoconverter/bytes_converter.go
+11
-1
internal/util/cgoconverter/bytes_converter_test.go
internal/util/cgoconverter/bytes_converter_test.go
+0
-3
未找到文件。
internal/util/cgoconverter/bytes_converter.go
浏览文件 @
867cf620
...
...
@@ -56,6 +56,12 @@ func (converter *BytesConverter) UnsafeGoBytes(cbytes *unsafe.Pointer, len int)
}
func
(
converter
*
BytesConverter
)
Release
(
lease
int32
)
{
p
:=
converter
.
Extract
(
lease
)
C
.
free
(
p
)
}
func
(
converter
*
BytesConverter
)
Extract
(
lease
int32
)
unsafe
.
Pointer
{
pI
,
ok
:=
converter
.
pointers
.
LoadAndDelete
(
lease
)
if
!
ok
{
panic
(
"try to release the resource that doesn't exist"
)
...
...
@@ -66,7 +72,7 @@ func (converter *BytesConverter) Release(lease int32) {
panic
(
"incorrect value type"
)
}
C
.
free
(
p
)
return
p
}
// Make sure only the caller own the converter
...
...
@@ -90,4 +96,8 @@ func Release(lease int32) {
globalConverter
.
Release
(
lease
)
}
func
Extract
(
lease
int32
)
unsafe
.
Pointer
{
return
globalConverter
.
Extract
(
lease
)
}
// DO NOT provide ReleaseAll() method for global converter
internal/util/cgoconverter/bytes_converter_test.go
浏览文件 @
867cf620
...
...
@@ -16,7 +16,6 @@ func TestBytesConverter(t *testing.T) {
defer
Release
(
lease
)
equalBytes
(
t
,
data
,
goBytes
)
// data = make([]byte, maxByteArrayLen)
v
:=
byte
(
0x57
)
length
=
maxByteArrayLen
cbytes
=
mallocCBytes
(
v
,
maxByteArrayLen
)
...
...
@@ -27,8 +26,6 @@ func TestBytesConverter(t *testing.T) {
if
!
isAll
(
goBytes
,
v
)
{
t
.
Errorf
(
"incorrect value, all bytes should be %v"
,
v
)
}
// equalBytes(t, data, goBytes)
}
func
TestConcurrentBytesConverter
(
t
*
testing
.
T
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录