Skip to content

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

@PavelAgarkov

Description

@PavelAgarkov

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

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

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

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

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

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

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

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