I guess this is my best proposal. If anyone has comments before I make a formal proposal, please let me know. I'd love the feedback. I also implemented it on top of coros.
https://github.com/ncruces/go-sqlite3/blob/aad2224/ext/seq/push.go Regards, Nuno On Tue, 25 Feb 2025 at 09:20, Nuno Cruces <ncru...@gmail.com> wrote: > Ack. > > I'll take some time to try to come up with a more general abstraction that > might be worthy of being added to package iter. > > That's hard just because I only have one use case, but I guess if no one > shares their use case (or makes concrete proposals) it's even harder. > > Thanks! > Nuno > > > On Sun 23 Feb 2025, 19:45 Ian Lance Taylor, <i...@golang.org> wrote: > >> On Sat, Feb 22, 2025 at 4:52 PM Nuno Cruces <ncru...@gmail.com> wrote: >> > >> > Is there any appetite to expose runtime.newcoro/coroswitch? They seem >> really useful beyond iter.Pull. They actually have the go:linkname >> handshake, but are then explicitly banned in the linker. >> > >> > I wanted to implement this "push like" interface with a "processor" >> function that accepts an iter.Seq and returns a result: >> > >> > func processor(seq iter.Seq[value]) result { ... } >> > >> > I've been cracking my head, and I'm convinced I can't with just >> iter.Seq/iter.Pull: I need a co/goroutine (and coroswitch, or channels). >> > >> > My implementation is here: >> https://github.com/ncruces/go-sqlite3/pull/229/files >> > >> > Maybe there's another higher level abstraction like iter.Pull we could >> build instead, but it's not apparent to me? >> >> I don't think we are likely to simply export newcoro and coroswitch, >> as they don't provide any functionality that we can't already get from >> goroutines, but are harder to use correctly. If someone can define a >> clean API that uses them based on channels, we could consider a >> proposal for that. >> >> Ian >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAM0U__9EzoGjPEBDem60rB%3D14GsD7nbiSHormseV%3Dp90ZpZM5g%40mail.gmail.com.