Skip to content

Eliminate unsafety from scheduler operations #6210

Closed
@brson

Description

@brson

The new runtime, scheduler, and I/O types are often accessed through unsafe mutable pointers. There are many interrelated runtime features that expect independent access to mutable task-local or thread-local state, and this is difficult to model safely.

Many of the unsafe features that need to be fixed use functions called unsafe_borrow*, like unsafe_borrow, unsafe_borrow_io, unsafe_borrow_local_services.

More things will need to be passed by value or ~. There are probably useful functional idioms that I'm not familiar with that could help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions