code clean

This commit is contained in:
Li Jie
2024-09-07 10:20:02 +08:00
parent 75fe9d61a3
commit d2538d08a7
5 changed files with 20 additions and 28 deletions

View File

@@ -25,6 +25,6 @@ type Void = [0]byte
type Future[T any] func(func(T))
// Just for pure LLGo/Go, transpile to callback in Go+
func Await[T1 any](call Future[T1]) (ret T1) {
return Run(call)
func Await[T1 any](future Future[T1]) T1 {
return Run(future)
}

View File

@@ -19,16 +19,7 @@
package async
var exec = &Executor{}
type Executor struct {
}
func Exec() *Executor {
return exec
}
func Run[T any](future Future[T]) (ret T) {
func Run[T any](future Future[T]) T {
ch := make(chan T)
go func() {
future(func(v T) {

View File

@@ -54,15 +54,16 @@ func (e *Executor) Run() {
e.L.Run(libuv.RUN_DEFAULT)
}
func Run[T any](future Future[T]) (ret T) {
func Run[T any](future Future[T]) T {
loop := libuv.LoopNew()
exec := &Executor{loop}
oldExec := setExec(exec)
var ret T
future(func(v T) {
ret = v
})
exec.Run()
loop.Close()
setExec(oldExec)
return
return ret
}