updates our ffmpreg version, heh (#3181)
This commit is contained in:
parent
4697271cef
commit
3045782b49
2
go.mod
2
go.mod
|
@ -12,7 +12,7 @@ require (
|
||||||
codeberg.org/gruf/go-debug v1.3.0
|
codeberg.org/gruf/go-debug v1.3.0
|
||||||
codeberg.org/gruf/go-errors/v2 v2.3.2
|
codeberg.org/gruf/go-errors/v2 v2.3.2
|
||||||
codeberg.org/gruf/go-fastcopy v1.1.2
|
codeberg.org/gruf/go-fastcopy v1.1.2
|
||||||
codeberg.org/gruf/go-ffmpreg v0.2.3
|
codeberg.org/gruf/go-ffmpreg v0.2.4
|
||||||
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf
|
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf
|
||||||
codeberg.org/gruf/go-kv v1.6.4
|
codeberg.org/gruf/go-kv v1.6.4
|
||||||
codeberg.org/gruf/go-list v0.0.0-20240425093752-494db03d641f
|
codeberg.org/gruf/go-list v0.0.0-20240425093752-494db03d641f
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -52,8 +52,8 @@ codeberg.org/gruf/go-fastcopy v1.1.2 h1:YwmYXPsyOcRBxKEE2+w1bGAZfclHVaPijFsOVOcn
|
||||||
codeberg.org/gruf/go-fastcopy v1.1.2/go.mod h1:GDDYR0Cnb3U/AIfGM3983V/L+GN+vuwVMvrmVABo21s=
|
codeberg.org/gruf/go-fastcopy v1.1.2/go.mod h1:GDDYR0Cnb3U/AIfGM3983V/L+GN+vuwVMvrmVABo21s=
|
||||||
codeberg.org/gruf/go-fastpath/v2 v2.0.0 h1:iAS9GZahFhyWEH0KLhFEJR+txx1ZhMXxYzu2q5Qo9c0=
|
codeberg.org/gruf/go-fastpath/v2 v2.0.0 h1:iAS9GZahFhyWEH0KLhFEJR+txx1ZhMXxYzu2q5Qo9c0=
|
||||||
codeberg.org/gruf/go-fastpath/v2 v2.0.0/go.mod h1:3pPqu5nZjpbRrOqvLyAK7puS1OfEtQvjd6342Cwz56Q=
|
codeberg.org/gruf/go-fastpath/v2 v2.0.0/go.mod h1:3pPqu5nZjpbRrOqvLyAK7puS1OfEtQvjd6342Cwz56Q=
|
||||||
codeberg.org/gruf/go-ffmpreg v0.2.3 h1:6nKpR4KzAhyWHe5E1YatqogZUZbmCmUjwv6qST/P1Ks=
|
codeberg.org/gruf/go-ffmpreg v0.2.4 h1:9NR0a5a0RjiIpyQgsqmHen6oadABADv04BWt7dr9kuE=
|
||||||
codeberg.org/gruf/go-ffmpreg v0.2.3/go.mod h1:oPMfBkOK7xmR/teT/dKW6SeMFpRos9ceR/OuUrxBfcQ=
|
codeberg.org/gruf/go-ffmpreg v0.2.4/go.mod h1:oPMfBkOK7xmR/teT/dKW6SeMFpRos9ceR/OuUrxBfcQ=
|
||||||
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf h1:84s/ii8N6lYlskZjHH+DG6jyia8w2mXMZlRwFn8Gs3A=
|
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf h1:84s/ii8N6lYlskZjHH+DG6jyia8w2mXMZlRwFn8Gs3A=
|
||||||
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf/go.mod h1:zZAICsp5rY7+hxnws2V0ePrWxE0Z2Z/KXcN3p/RQCfk=
|
codeberg.org/gruf/go-iotools v0.0.0-20240710125620-934ae9c654cf/go.mod h1:zZAICsp5rY7+hxnws2V0ePrWxE0Z2Z/KXcN3p/RQCfk=
|
||||||
codeberg.org/gruf/go-kv v1.6.4 h1:3NZiW8HVdBM3kpOiLb7XfRiihnzZWMAixdCznguhILk=
|
codeberg.org/gruf/go-kv v1.6.4 h1:3NZiW8HVdBM3kpOiLb7XfRiihnzZWMAixdCznguhILk=
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -4,7 +4,6 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"github.com/tetratelabs/wazero"
|
"github.com/tetratelabs/wazero"
|
||||||
"github.com/tetratelabs/wazero/sys"
|
"github.com/tetratelabs/wazero/sys"
|
||||||
|
@ -66,53 +65,6 @@ func (inst *Instantiator) New(ctx context.Context) (*Instance, error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type InstancePool struct {
|
|
||||||
Instantiator
|
|
||||||
|
|
||||||
pool []*Instance
|
|
||||||
lock sync.Mutex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *InstancePool) Get(ctx context.Context) (*Instance, error) {
|
|
||||||
for {
|
|
||||||
// Check for cached.
|
|
||||||
inst := p.Cached()
|
|
||||||
if inst == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if closed.
|
|
||||||
if inst.IsClosed() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
return inst, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must create new instance.
|
|
||||||
return p.Instantiator.New(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *InstancePool) Put(inst *Instance) {
|
|
||||||
if inst.inst != &p.Instantiator {
|
|
||||||
panic("instance and pool instantiators do not match")
|
|
||||||
}
|
|
||||||
p.lock.Lock()
|
|
||||||
p.pool = append(p.pool, inst)
|
|
||||||
p.lock.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *InstancePool) Cached() *Instance {
|
|
||||||
var inst *Instance
|
|
||||||
p.lock.Lock()
|
|
||||||
if len(p.pool) > 0 {
|
|
||||||
inst = p.pool[len(p.pool)-1]
|
|
||||||
p.pool = p.pool[:len(p.pool)-1]
|
|
||||||
}
|
|
||||||
p.lock.Unlock()
|
|
||||||
return inst
|
|
||||||
}
|
|
||||||
|
|
||||||
// Instance ...
|
// Instance ...
|
||||||
//
|
//
|
||||||
// NOTE: Instance is NOT concurrency
|
// NOTE: Instance is NOT concurrency
|
||||||
|
@ -153,19 +105,15 @@ func (inst *Instance) Run(ctx context.Context, args Args) (uint32, error) {
|
||||||
|
|
||||||
// Instantiate the module from precompiled wasm module data.
|
// Instantiate the module from precompiled wasm module data.
|
||||||
mod, err := inst.wzrt.InstantiateModule(ctx, inst.cmod, modcfg)
|
mod, err := inst.wzrt.InstantiateModule(ctx, inst.cmod, modcfg)
|
||||||
|
switch err := err.(type) {
|
||||||
if mod != nil {
|
case nil:
|
||||||
// Close module.
|
return 0, mod.Close(ctx)
|
||||||
mod.Close(ctx)
|
case *sys.ExitError:
|
||||||
}
|
|
||||||
|
|
||||||
// Check for a returned exit code error.
|
|
||||||
if err, ok := err.(*sys.ExitError); ok {
|
|
||||||
return err.ExitCode(), nil
|
return err.ExitCode(), nil
|
||||||
}
|
default:
|
||||||
|
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (inst *Instance) IsClosed() bool {
|
func (inst *Instance) IsClosed() bool {
|
||||||
return (inst.wzrt == nil || inst.cmod == nil)
|
return (inst.wzrt == nil || inst.cmod == nil)
|
||||||
|
|
|
@ -30,7 +30,7 @@ codeberg.org/gruf/go-fastcopy
|
||||||
# codeberg.org/gruf/go-fastpath/v2 v2.0.0
|
# codeberg.org/gruf/go-fastpath/v2 v2.0.0
|
||||||
## explicit; go 1.14
|
## explicit; go 1.14
|
||||||
codeberg.org/gruf/go-fastpath/v2
|
codeberg.org/gruf/go-fastpath/v2
|
||||||
# codeberg.org/gruf/go-ffmpreg v0.2.3
|
# codeberg.org/gruf/go-ffmpreg v0.2.4
|
||||||
## explicit; go 1.22.0
|
## explicit; go 1.22.0
|
||||||
codeberg.org/gruf/go-ffmpreg/embed/ffmpeg
|
codeberg.org/gruf/go-ffmpreg/embed/ffmpeg
|
||||||
codeberg.org/gruf/go-ffmpreg/embed/ffprobe
|
codeberg.org/gruf/go-ffmpreg/embed/ffprobe
|
||||||
|
|
Loading…
Reference in New Issue