Thanks so much for taking a look, and good catch! Error handling is
definitely a missing piece in the library at the moment. I'm not sure
panic/recover is the direction I'd take it, but I do think it could be made
to work.

When using this library, the way we're handling errors is by hanging the
entire pipeline system off a struct which provides access to an error chan.
Every pipeline stage shares the same context, which a separate goroutine
cancels if any error is seen on the error channel.

I've considered including error handling based either around this idea or
an errgroup, but haven't had time to write it up. Might do so soon.

On Thu, Aug 11, 2022, 2:36 PM Robert Engels <reng...@ix.netcom.com> wrote:

> I’d say it certainly highlights a problem with Go’s error model.
> Exceptions would fit nicely here - instead it seems you needed to ignore
> all error handling - because chaining is impossible with error returns.
>
> A streams api with panic/recover is needed.
>
> On Aug 11, 2022, at 12:55 PM, K. Alex Mills <k.alex.mi...@gmail.com>
> wrote:
>
> 
> Hello Gophers,
>
> I recently had an opportunity to try out Go generics on a small pipelines
> package <https://pkg.go.dev/github.com/splunk/go-genlib/pipelines>, along
> with some of my coworkers.
>
> The overall goal of this package is to provide helpers for separating
> concurrency from the core logic of the computation. The result was intended
> for I/O bound computations, and so it's likely inappropriate for managing
> short-lived goroutines. It takes a functional programming approach,
> providing helpers with familiar names seen in other APIs like Map, FlatMap,
> OptionMap, etc. One feature which I am particularly happy with is that
> concurrency concerns like worker pool size and channel buffers are
> configurable with minimal disruption to the rest of the code.
>
> Take a look at the library
> <https://pkg.go.dev/github.com/splunk/go-genlib/pipelines> and its
> accompanying blog post <https://kalexmills.com/journal/pipelines/>. I'm
> open to any of your thoughts, suggestions, and issue reports.
>
> Sincerely,
>
> K. Alex Mills
>
> --
> 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 on the web visit
> https://groups.google.com/d/msgid/golang-nuts/CALJzkY_zASs-YOukv6ciSO45b93jz39DmjAWA915kfBuwimkgQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/golang-nuts/CALJzkY_zASs-YOukv6ciSO45b93jz39DmjAWA915kfBuwimkgQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
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 on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CALJzkY_FmOoSSFAhosUsJ1aQv6b25oo9t%3D5%3DZb5rqe0mBWp1Mw%40mail.gmail.com.

Reply via email to