ref: 6953f303b3c111e7cc180f421fd00b99dd781114
parent: 4e42a4e082666f00dfb2ce7b2f6f4cd28f559330
author: penny <penny@limitedideas.org>
date: Fri Oct 17 14:30:45 EDT 2025
add pure anon dispatching
--- a/dispatch.go
+++ b/dispatch.go
@@ -25,6 +25,24 @@
err error
}
+type AnonJob struct {+ jobfunc func()
+ wg sync.WaitGroup
+}
+
+func (job *AnonJob) Do() {+ job.jobfunc()
+ job.wg.Done()
+}
+
+func (job *AnonJob) Init() {+ job.wg.Add(1)
+}
+
+func (job *AnonJob) Wait() {+ job.wg.Wait()
+}
+
type GenericJob struct {jobfunc func(job *GenericJob)
result string
@@ -149,6 +167,15 @@
func (hc *Hellclient) dispatchFunc(enclosure func(*GenericJob)) Job { noticeJob := &GenericJob{+ jobfunc: enclosure,
+ }
+ noticeJob.Init()
+ hc.jobdispatch <- noticeJob
+ return noticeJob
+}
+
+func (hc *Hellclient) dispatchAnon(enclosure func()) Job {+ noticeJob := &AnonJob{jobfunc: enclosure,
}
noticeJob.Init()
--- a/main.go
+++ b/main.go
@@ -297,11 +297,10 @@
}
hc.PrintObjectProperties(translated)
case "like":
- likefunc := func(job *GenericJob) {+ likefunc := func() {_, err = client.Favourite(context.Background(), postItem.ID)
}
- likeJob := hc.dispatchFunc(likefunc)
- likeJob.Wait()
+ hc.dispatchAnon(likefunc).Wait()
if err != nil {printMastodonErr(err)
} else {@@ -310,11 +309,8 @@
}
return
case "mark":
- markfunc := func(job *GenericJob) {- _, err = client.Bookmark(context.Background(), postItem.ID)
- }
- markJob := hc.dispatchFunc(markfunc)
- markJob.Wait()
+ markfunc := func() {_, err = client.Bookmark(context.Background(), postItem.ID)}+ hc.dispatchAnon(markfunc).Wait()
if err != nil {printMastodonErr(err)
} else {@@ -324,11 +320,10 @@
return
case "unmark":
var postCopy *mastodon.Status
- unmarkfunc := func(job *GenericJob) {+ unmarkfunc := func() {postCopy, err = client.GetStatus(context.Background(), postItem.ID)
}
- unmarkJob := hc.dispatchFunc(unmarkfunc)
- unmarkJob.Wait()
+ hc.dispatchAnon(unmarkfunc).Wait()
if err != nil { fmt.Printf("Error removing bookmark: %s\n", err)return
@@ -337,7 +332,7 @@
fmt.Printf("Post not bookmarked.\n")return
}
- hc.dispatchFunc(func(job *GenericJob) {_, err = client.Unbookmark(context.Background(), postItem.ID)}).Wait()+ hc.dispatchAnon(func() {_, err = client.Unbookmark(context.Background(), postItem.ID)}).Wait() if err != nil {printMastodonErr(err)
} else {--
⑨