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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions