Skip to content

Sync Coroutine Support #7

@kammce

Description

@kammce

This is an epic for collecting all of the utilities for supporting synchronous coroutines. The purpose of supporting sync coroutine calls, is that we will have clients that do not want to interact with the coroutine code. They want their code to be as simple as:

auto led = get_led(); // strong_ptr<hal::output_pin>
led->level(true); // turn on
hal::delay(clock, 100ms);
led->level(false); // turn off

They don't want to deal with the async context and such. So for them we can provide wrappers and a global async context that each sync wrapper can use "per thread". Needs to be per thread because threads cannot share the sync context as that would result in race conditions galore.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions