Skip to content

Fix unsound assumption of chunks being disjoint #89

@flying-sheep

Description

@flying-sheep

See #87 (comment)

I assume we could still do things in parallel if we want.

We could create a DisjointViews (or so) struct that holds non-overlapping ArrayBytesFixedDisjointViews and has a safe fn add(&mut self, ...) -> bool that returns if a region was safely added (would not overlap with the already contained regions) or not. Then at runtime,

  1. create a Vec<DisjointViews> by first trying to add each view to the first DisjointViews object, then the second, … until each view has been added.
  2. go over the vec and handle each DisjointViews object in parallel.

There could be pathological cases where that doesn’t work well, but in practice, those shouldn’t happen

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