[chore] media pipeline improvements (#3110)

* don't set emoji / media image paths on failed download, migrate FileType from string to integer

* fix incorrect uses of util.PtrOr, fix returned frontend media

* fix migration not setting arguments correctly in where clause

* fix not providing default with not null column

* whoops

* ensure a default gets set for media attachment file type

* remove the exclusive flag from writing files in disk storage

* rename PtrOr -> PtrOrZero, and rename PtrValueOr -> PtrOrValue to match

* slight wording changes

* use singular / plural word forms (no parentheses), is better for screen readers

* update testmodels with unknown media type to have unset file details, update attachment focus handling converting to frontend, update tests

* store first instance in ffmpeg wasm pool, fill remaining with closed instances
This commit is contained in:
kim
2024-07-17 15:26:33 +00:00
committed by GitHub
parent 0aadc2db2a
commit 72ba5666a6
29 changed files with 669 additions and 399 deletions

View File

@@ -34,14 +34,33 @@ type wasmInstancePool struct {
}
func (p *wasmInstancePool) Init(ctx context.Context, sz int) error {
p.pool = make(chan *wasm.Instance, sz)
for i := 0; i < sz; i++ {
inst, err := p.inst.New(ctx)
if err != nil {
return err
}
p.pool <- inst
// Initialize for first time
// to preload module into the
// wazero compilation cache.
inst, err := p.inst.New(ctx)
if err != nil {
return err
}
// Clamp to 1.
if sz <= 0 {
sz = 1
}
// Allocate new pool instance channel.
p.pool = make(chan *wasm.Instance, sz)
// Store only one
// open instance
// at init time.
p.pool <- inst
// Fill reminaing with closed
// instances for later opening.
for i := 0; i < sz-1; i++ {
p.pool <- new(wasm.Instance)
}
return nil
}