Расширение Fiber для добавления операции - PullRequest
1 голос
/ 25 мая 2020

У меня есть несколько параллельных Service, выполнение которых я хочу контролировать. В частности, я хочу иметь возможность использовать все операции, которые предоставляет Fiber, а также некоторые другие специфические для бизнеса c вещи. В настоящее время я подумываю просто унаследовать его от Fiber. Вот он:

trait Svc[F[_]] extends Fiber[F, Unit]{

    def usefulOp: F[Unit]

}

Используя такой подход, я добавил к сервису операции Fiber join и cancel, а также использовал что-то, что связано с бизнес-логами c . Проблема, которую я вижу, заключается в том, что если Svc отменяется и на нем вызывается usefulOp, может возникнуть проблема.

Что могло бы быть решением проблемы? Наверное, запретить звонить usefulOp на отмененный Svc как-нибудь?

...