mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-30 01:27:26 +08:00
1 parent
83d936e9f8
commit
010ab9f314
1 file changed
+7
@@ -214,8 +214,14 @@ func (e *NativeEngine) Call(ctx context.Context, name string, args []any, emit f
|
|||||||
defer func() {
|
defer func() {
|
||||||
worker.Renderer.OutputContext = context.Background()
|
worker.Renderer.OutputContext = context.Background()
|
||||||
e.renderMu.Lock()
|
e.renderMu.Lock()
|
||||||
|
if result != nil && result["ok"] == true && ctx.Err() == nil {
|
||||||
e.currentSession.svgFonts = maps.Clone(worker.svgFonts)
|
e.currentSession.svgFonts = maps.Clone(worker.svgFonts)
|
||||||
|
clear(worker.pageCache)
|
||||||
|
clear(worker.textCache)
|
||||||
|
worker.textOrder = nil
|
||||||
|
clear(worker.svgFonts)
|
||||||
e.renderIdle = append(e.renderIdle, worker)
|
e.renderIdle = append(e.renderIdle, worker)
|
||||||
|
}
|
||||||
e.renderCount--
|
e.renderCount--
|
||||||
if e.renderCount == 0 {
|
if e.renderCount == 0 {
|
||||||
close(e.renderDone)
|
close(e.renderDone)
|
||||||
@@ -391,6 +397,7 @@ func (e *NativeEngine) renderSession(ctx context.Context) (*Session, error) {
|
|||||||
defer e.renderMu.Unlock()
|
defer e.renderMu.Unlock()
|
||||||
if count := len(e.renderIdle); count > 0 {
|
if count := len(e.renderIdle); count > 0 {
|
||||||
worker := e.renderIdle[count-1]
|
worker := e.renderIdle[count-1]
|
||||||
|
e.renderIdle[count-1] = nil
|
||||||
e.renderIdle = e.renderIdle[:count-1]
|
e.renderIdle = e.renderIdle[:count-1]
|
||||||
worker.Renderer.OutputContext = ctx
|
worker.Renderer.OutputContext = ctx
|
||||||
return worker, nil
|
return worker, nil
|
||||||
|
|||||||
Reference in new issue
Block a user