Skip to content

Наследование горутин #13

Description

@PavelAgarkov

Нужно хранить структуры горутин, которые будут иметь Контекст, отмену, функцию, родителя(группу). Такое дерево может останавливать группы горутин по сигналу из юзер спейса, перезапускать. Можно останавливать группы или добавлять к ним горутины. Это механизм оркестрации задач в кернеле.

Можно взять container/heap. Или map[*parent][]*children

Обходя список мы будем завершать горутины. Начиная с корня или с любого узла с текстовым названием.

Таким образом мы построим все запущенные подсистемы и будем контролировать их работоспособность из единой точки управления. Чего нет в го рантайме по умолчанию.

Можно записывать данные в go-memdb и прописывать на изменения данных в дереве.

Список сервисов не связан со списком горутин, или связан, надо подумать.

Сервисы порождают горутины. Поэтому группа горутин это сервис. Завершая сервис завершается его группа. Если сервис запускает сервис с горутинами то выключение корня в этой системе завершает все дочерние сервисы.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions