Skip to content

Commit

Permalink
Merge branch 'master' into rc
Browse files Browse the repository at this point in the history
  • Loading branch information
elliottslaughter committed Mar 22, 2024
2 parents 6aa49d6 + 465ae99 commit c610715
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
1 change: 1 addition & 0 deletions runtime/legion/legion_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -1156,6 +1156,7 @@ typedef enum legion_error_t {
ERROR_EXCEEDED_MAXIMUM_NUMBER_LOCAL_FIELDS = 387,
ERROR_UNABLE_ALLOCATE_LOCAL_FIELD = 388,
ERROR_TASK_ATTEMPTED_ALLOCATE_FIELD = 389,
ERROR_DEFERRED_BUFFER_DOUBLE_DELETE = 390,
//ERROR_PREDICATED_TASK_LAUNCH_FOR_TASK = 392,
ERROR_PREDICATED_INDEX_TASK_LAUNCH = 393,
ERROR_ATTEMPTED_INLINE_MAPPING_REGION = 395,
Expand Down
8 changes: 5 additions & 3 deletions runtime/legion/legion_context.cc
Original file line number Diff line number Diff line change
Expand Up @@ -623,9 +623,11 @@ namespace Legion {
{
std::map<PhysicalInstance,LgEvent>::iterator finder =
task_local_instances.find(instance);
#ifdef DEBUG_LEGION
assert(finder != task_local_instances.end());
#endif
if (finder == task_local_instances.end())
REPORT_LEGION_ERROR(ERROR_DEFERRED_BUFFER_DOUBLE_DELETE,
"Detected double deletion of deferred buffer " IDFMT
"in parent task %s (UID %lld).",
instance.id, get_task_name(), get_unique_id())
task_local_instances.erase(finder);
MemoryManager *manager =
runtime->find_memory_manager(instance.get_location());
Expand Down
12 changes: 7 additions & 5 deletions runtime/legion/region_tree.inl
Original file line number Diff line number Diff line change
Expand Up @@ -3885,6 +3885,7 @@ namespace Legion {
{
const DomainPoint color =
partition->color_space->delinearize_color_to_point(*itr);
ApEvent child_ready;
Realm::IndexSpace<DIM,T> child_space;
if (future_map_domain.contains(color))
{
Expand All @@ -3910,19 +3911,20 @@ namespace Legion {
context->runtime->profiler->add_partition_request(requests,
op, DEP_PART_INTERSECTIONS);
Realm::IndexSpace<DIM,T> result;
ApEvent ready(Realm::IndexSpace<DIM,T>::compute_intersection(
parent_space, child_space, result, requests, parent_ready));
child_ready = ApEvent(
Realm::IndexSpace<DIM,T>::compute_intersection(
parent_space, child_space, result, requests, parent_ready));
child_space = result;
if (ready.exists())
result_events.insert(ready);
if (child_ready.exists())
result_events.insert(child_ready);
}
}
else
child_space = Realm::IndexSpace<DIM,T>::make_empty();
IndexSpaceNodeT<DIM,T> *child =
static_cast<IndexSpaceNodeT<DIM,T>*>(
partition->get_child(*itr));
if (child->set_realm_index_space(child_space, ApEvent::NO_AP_EVENT))
if (child->set_realm_index_space(child_space, child_ready))
delete child;
}
if (result_events.empty())
Expand Down

0 comments on commit c610715

Please sign in to comment.