diff --git a/headers/private/kernel/team.h b/headers/private/kernel/team.h index e376409f75..87bbab6e67 100644 --- a/headers/private/kernel/team.h +++ b/headers/private/kernel/team.h @@ -38,6 +38,7 @@ struct job_control_entry* team_get_death_entry(Team *team, thread_id child, bool* _deleteEntry); void team_init_exit_info_on_error(Team* team); bool team_is_valid(team_id id); +Team *team_get_team_struct(team_id id); Team *team_get_team_struct_locked(team_id id); int32 team_max_teams(void); int32 team_used_teams(void); diff --git a/src/system/kernel/team.cpp b/src/system/kernel/team.cpp index 15cb73f653..a3fb03b484 100644 --- a/src/system/kernel/team.cpp +++ b/src/system/kernel/team.cpp @@ -2918,9 +2918,15 @@ team_is_valid(team_id id) if (id <= 0) return false; - InterruptsReadSpinLocker teamsLocker(sTeamHashLock); + return team_get_team_struct(id) != NULL; +} - return team_get_team_struct_locked(id) != NULL; + +Team* +team_get_team_struct(team_id id) +{ + InterruptsReadSpinLocker teamsLocker(sTeamHashLock); + return team_get_team_struct_locked(id); }