<@U06A03HV1> I’ve been having fun with <https://gi...
# development
a
@witty-crayon-22786 I’ve been having fun with https://github.com/pantsbuild/pants/pull/6095. You raise a good point - I think that dirtying is technically safe (because happens to only be done under the graph lock), but this isn’t guaranteed by the type system. I think the way to fix that, if we wanted to, is to take the dirty bit off of
EntryState
, and put dirty `EntryId`s into an
Arc<RwLock<HashSet<EntryId>>>
which is shared between the
Graph
and each
Entry
, so that when batch invalidations happen,
Graph
can just graph the lock and invalidate them all, but when `Node`s complete, they can try for the lock as they need in an ad-hoc way… I’ve just hacked that together, and it seems to work… How does it sound to you?