mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-08 10:08:42 +08:00
issue: #33132 pr: #33133 other pr: #33228, #34084, #33946 - implement future-based cgo utility - async search and retrieve in cgo - modify gc configuration document --------- Signed-off-by: chyezh <chyezh@outlook.com>
49 lines
866 B
Go
49 lines
866 B
Go
//go:build test
|
|
// +build test
|
|
|
|
package cgo
|
|
|
|
/*
|
|
#cgo pkg-config: milvus_futures
|
|
|
|
#include "futures/future_c.h"
|
|
#include <stdlib.h>
|
|
|
|
*/
|
|
import "C"
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
"unsafe"
|
|
)
|
|
|
|
const (
|
|
caseNoNoInterrupt int = 0
|
|
caseNoThrowStdException int = 1
|
|
caseNoThrowFollyException int = 2
|
|
caseNoThrowSegcoreException int = 3
|
|
)
|
|
|
|
type testCase struct {
|
|
interval time.Duration
|
|
loopCnt int
|
|
caseNo int
|
|
}
|
|
|
|
func createFutureWithTestCase(ctx context.Context, testCase testCase) Future {
|
|
f := func() CFuturePtr {
|
|
return (CFuturePtr)(C.future_create_test_case(C.int(testCase.interval.Milliseconds()), C.int(testCase.loopCnt), C.int(testCase.caseNo)))
|
|
}
|
|
future := Async(ctx, f, WithName("createFutureWithTestCase"))
|
|
return future
|
|
}
|
|
|
|
func getCInt(p unsafe.Pointer) int {
|
|
return int(*(*C.int)(p))
|
|
}
|
|
|
|
func freeCInt(p unsafe.Pointer) {
|
|
C.free(p)
|
|
}
|