* creating (or dividing) reserved areas did not acquire a ref to an address

space - but they were released upon deletion. It's probably not really
  needed, but now all reserved areas also grab a reference to their address
  space.
* Rearranged team tear down to be a bit more sane: the I/O context is removed
  first (where semaphores/areas/ports/whatever might still be used), and the
  address space is deleted last.
* delete_area() can now remove its address space reference again (due to the
  two changes above), and therefore fixes bug #1374.
* cleaned up vm_address_space.c a bit (no functional change there, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22130 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2007-08-31 14:20:28 +00:00
parent e94ad1e24d
commit 22e95c5911
3 changed files with 41 additions and 44 deletions
+2 -2
View File
@@ -1781,11 +1781,11 @@ team_delete_team(struct team *team)
// free team resources
vm_delete_address_space(team->address_space);
vfs_free_io_context(team->io_context);
delete_owned_ports(teamID);
sem_delete_owned_sems(teamID);
remove_images(team);
vfs_free_io_context(team->io_context);
vm_delete_address_space(team->address_space);
delete_team_struct(team);