diff --git a/content/assets/zero-alloc-call-sched/app.png b/content/assets/zero-alloc-call-sched/app.png new file mode 100644 index 0000000..094899f Binary files /dev/null and b/content/assets/zero-alloc-call-sched/app.png differ diff --git a/content/assets/zero-alloc-call-sched/app/window.go b/content/assets/zero-alloc-call-sched/app/window.go index 3d27f23..1c0ee44 100644 --- a/content/assets/zero-alloc-call-sched/app/window.go +++ b/content/assets/zero-alloc-call-sched/app/window.go @@ -36,7 +36,7 @@ func NewWindow() (*Win, error) { err error ) mainthread.Call(func() { - w.win, err = glfw.CreateWindow(640, 480, "", nil, nil) + w.win, err = glfw.CreateWindow(640, 480, "golang.design/research", nil, nil) if err != nil { return } diff --git a/content/assets/zero-alloc-call-sched/main.go b/content/assets/zero-alloc-call-sched/cmd/app2/main.go similarity index 94% rename from content/assets/zero-alloc-call-sched/main.go rename to content/assets/zero-alloc-call-sched/cmd/app2/main.go index d301e8c..5cad513 100644 --- a/content/assets/zero-alloc-call-sched/main.go +++ b/content/assets/zero-alloc-call-sched/cmd/app2/main.go @@ -56,9 +56,8 @@ options: panic(err) } - done := make(chan struct{}, 3) + done := make(chan struct{}, 2) go func() { - defer func() { done <- struct{}{} }() f, _ := os.Create(*traceF) defer f.Close() trace.Start(f) @@ -79,5 +78,4 @@ options: }() <-done <-done - <-done } diff --git a/content/assets/zero-alloc-call-sched/mainthread/mainthread.go b/content/assets/zero-alloc-call-sched/mainthread/mainthread.go index 226595e..4296b7e 100644 --- a/content/assets/zero-alloc-call-sched/mainthread/mainthread.go +++ b/content/assets/zero-alloc-call-sched/mainthread/mainthread.go @@ -21,7 +21,6 @@ func init() { func Init(main func()) { done := donePool.Get().(chan struct{}) defer donePool.Put(done) - go func() { defer func() { done <- struct{}{} @@ -48,7 +47,6 @@ func Init(main func()) { func Call(f func()) { done := donePool.Get().(chan struct{}) defer donePool.Put(done) - funcQ <- funcData{fn: f, done: done} <-done }