Author: bonefish Date: 2011-05-09 19:51:13 +0200 (Mon, 09 May 2011) New Revision: 41404 Changeset: https://dev.haiku-os.org/changeset/41404 Modified: haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp Log: team_remove_team(): No longer acquire the global threads spinlock when removing the team from the hash table. The reason why this was done doesn't exist anymore. Modified: haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp =================================================================== --- haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp 2011-05-09 17:32:26 UTC (rev 41403) +++ haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp 2011-05-09 17:51:13 UTC (rev 41404) @@ -2795,15 +2795,9 @@ parent->dead_children.user_time += team->dead_threads_user_time + team->dead_children.user_time; - // Remove the team from the hash table. Also grab the thread spinlock while - // doing that. This makes the following sequence safe: grab teams lock, - // lookup team, grab threads lock, unlock teams lock, - // mutex_lock_threads_lock(<team related lock>), as used in the VFS code to - // lock another team's IO context. + // remove the team from the hash table InterruptsSpinLocker teamsLocker(sTeamHashLock); - SpinLocker threadsLocker(gThreadSpinlock); sTeamHash.Remove(team); - threadsLocker.Unlock(); sUsedTeams--; teamsLocker.Unlock();