Skip to content

Commit 3435f4f

Browse files
author
czyt
committed
chore:bump go version to 1.22
fix some leaks
1 parent 4378c26 commit 3435f4f

File tree

4 files changed

+34
-20
lines changed

4 files changed

+34
-20
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/lib-x/edgetts
22

3-
go 1.21.6
3+
go 1.22.6
44

55
require (
66
github.com/google/uuid v1.6.0

internal/communicate/communicate.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,17 @@ func (c *Communicate) WriteStreamTo(rc io.Writer) error {
116116
return err
117117
}
118118
audioBinaryData := make([][][]byte, c.audioDataIndex)
119-
for data := range op {
120-
if _, ok := data["end"]; ok {
119+
for payload := range op {
120+
if _, ok := payload["end"]; ok {
121121
if len(audioBinaryData) == c.audioDataIndex {
122122
break
123123
}
124124
}
125-
if t, ok := data["type"]; ok && t == "audio" {
126-
data := data["data"].(audioData)
125+
if t, ok := payload["type"]; ok && t == "audio" {
126+
data := payload["data"].(audioData)
127127
audioBinaryData[data.Index] = append(audioBinaryData[data.Index], data.Data)
128128
}
129-
if e, ok := data["error"]; ok {
129+
if e, ok := payload["error"]; ok {
130130
fmt.Printf("has error err: %v\n", e)
131131
}
132132
}

internal/ttsTask/packTask.go

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,17 @@ func (p *PackTask) Start(wg *sync.WaitGroup) error {
3535
defer wg.Done()
3636
for _, entry := range p.PackEntries {
3737
// for zip file, the entry should be written after creation.
38-
opt := p.CommunicateOpt
39-
if entry.EntryCommunicateOpt != nil {
40-
opt = entry.EntryCommunicateOpt
41-
42-
}
43-
c, err := communicate.NewCommunicate(entry.Text, opt)
44-
if err != nil {
45-
log.Printf("create communicate error:%v \r\n", err)
38+
if err := p.processPackEntry(entry); err != nil {
4639
continue
4740
}
48-
entryWriter, err := p.PackEntryCreator(entry.EntryName)
49-
err = c.WriteStreamTo(entryWriter)
50-
if err != nil {
51-
log.Printf("write data to entry writer error:%v \r\n", err)
52-
return err
53-
}
5441
}
5542
// after all entries are written, write the meta data into a json file. this process is optional.
5643
// so error is ignored.
44+
p.writeMetaDataForPack()
45+
return nil
46+
}
5747

48+
func (p *PackTask) writeMetaDataForPack() {
5849
if len(p.MetaData) > 0 {
5950
for _, metaData := range p.MetaData {
6051
for entryName, entryPayload := range metaData {
@@ -70,5 +61,24 @@ func (p *PackTask) Start(wg *sync.WaitGroup) error {
7061
}
7162
}
7263
}
64+
}
65+
66+
func (p *PackTask) processPackEntry(entry *PackEntry) error {
67+
opt := p.CommunicateOpt
68+
if entry.EntryCommunicateOpt != nil {
69+
opt = entry.EntryCommunicateOpt
70+
}
71+
c, err := communicate.NewCommunicate(entry.Text, opt)
72+
defer c.CloseOutput()
73+
if err != nil {
74+
log.Printf("create communicate error:%v \r\n", err)
75+
return err
76+
}
77+
entryWriter, err := p.PackEntryCreator(entry.EntryName)
78+
err = c.WriteStreamTo(entryWriter)
79+
if err != nil {
80+
log.Printf("write data to entry writer error:%v \r\n", err)
81+
return err
82+
}
7383
return nil
7484
}

speech.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ func (s *Speech) AddPackTaskWithCustomOptions(dataEntries map[string]string, ent
9393
}
9494
packEntries := make([]*ttsTask.PackEntry, 0, taskCount)
9595
for name, text := range dataEntries {
96+
// empty text will cause goroutine leak,ignore it
97+
if text == "" {
98+
continue
99+
}
96100
packEntry := &ttsTask.PackEntry{
97101
Text: text,
98102
EntryName: name,

0 commit comments

Comments
 (0)