Commit b06d78d9 authored by Roman Alifanov's avatar Roman Alifanov

fix ui freeze

parent 40bc9bed
...@@ -10,6 +10,7 @@ import ( ...@@ -10,6 +10,7 @@ import (
_ "embed" _ "embed"
"github.com/diamondburned/gotk4-adwaita/pkg/adw" "github.com/diamondburned/gotk4-adwaita/pkg/adw"
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4" "github.com/diamondburned/gotk4/pkg/gtk/v4"
) )
...@@ -79,7 +80,6 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -79,7 +80,6 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
} }
pkgsWithInfo := make(map[string]apm.InfoResponse) pkgsWithInfo := make(map[string]apm.InfoResponse)
var mu sync.Mutex var mu sync.Mutex
var wg sync.WaitGroup var wg sync.WaitGroup
...@@ -87,8 +87,8 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -87,8 +87,8 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
for _, p := range pkgs { for _, p := range pkgs {
wg.Add(1) wg.Add(1)
pkg := p
go func(pkg string) { go func() {
defer wg.Done() defer wg.Done()
sem <- struct{}{} sem <- struct{}{}
...@@ -99,11 +99,13 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -99,11 +99,13 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
mu.Lock() mu.Lock()
pkgsWithInfo[pkg] = info pkgsWithInfo[pkg] = info
mu.Unlock() mu.Unlock()
}(p) }()
} }
go func(title string) {
wg.Wait() wg.Wait()
glib.IdleAdd(func() {
row := adw.NewActionRow() row := adw.NewActionRow()
row.SetTitle(title) row.SetTitle(title)
row.SetActivatable(true) row.SetActivatable(true)
...@@ -118,7 +120,10 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -118,7 +120,10 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
ar := NewPackageRow(p, info.PackageInfo) ar := NewPackageRow(p, info.PackageInfo)
page.listbox.Append(ar) page.listbox.Append(ar)
} }
upage.listbox.Append(row) upage.listbox.Append(row)
})
}(title)
} }
return urow return urow
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment