Commit Graph

14 Commits

Author SHA1 Message Date
Axel Dörfler
7dc1c65f2f Improved "team" debugger command: it will no longer crash on the kernel team, it
will no longer use vm_get_kernel_aspace() (which acquired a semaphore) and it now
accepts decimal team IDs as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-06 08:36:37 +00:00
Axel Dörfler
08da6fccdd Introduced a sane concept of ownership for the team_args structure: now load_image_etc()
and exec_team() have an additional "kernel" argument and will copy the arguments
themselves (or rather, delegate that to create_team_arg()).
When team_create_thread_start() is called, it will take over ownership and is
responsible for deleting it - this also fixed a memory leak in case the user
stack area couldn't be created.
Also changed comment after exit_thread(): since this call only delivers a signal, the
code after it will still get executed.
This fixes the crashing symptom of bug #50.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-05 15:32:48 +00:00
Axel Dörfler
d86d4063b0 thread_create_thread_start() is a thread_func and therefore returns int32 not status_t
(that's what our headers say).
Some style fixes in signal.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-16 12:52:59 +00:00
Jérôme Duval
3f84430938 added a trace and changed err type in team_create_thread_start()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-13 15:44:30 +00:00
Axel Dörfler
f26e4a1c98 Made hash functions able to deal with keys with negative numbers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-26 02:02:33 +00:00
Axel Dörfler
06ae92cd04 Maybe it's better to free the team resources after notifying the watchers;
since the hooks are called in the context of the team.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-05 10:27:08 +00:00
Ingo Weinhold
7d11acca6d Spotted by Axel: If the caller of a load_image_etc() was waiting for the new team to be loaded, but the team died before finishing loading we were notifying the caller only in case the team had already more than one thread.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-04 22:45:04 +00:00
Axel Dörfler
0d299e8a4b The team watching mechanism now works as intended.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 16:57:40 +00:00
Axel Dörfler
5159717538 team_delete_team() should have called delete_team_struct() instead of just
freeing the team - it leaked dead children semaphores and death entries;
waiting for a specific team could not have worked before.
Fixed delete_team_struct(), it did not correctly free the death list (would
have accessed freed memory).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 12:42:01 +00:00
Axel Dörfler
99c566f6c9 Added a team watching mechanism in the kernel, not yet tested (but at least doesn't cause any harm yet :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 12:00:42 +00:00
Ingo Weinhold
aeaa4a21a4 It's considered rude to try killing the kernel team.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 23:38:07 +00:00
Axel Dörfler
229b2db028 cache_node_launched() is now called later, so that the environment will
be the same for both ways (via load_image() and exec*()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 11:15:05 +00:00
Axel Dörfler
24b2daf33d Slightly improved debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 12:53:56 +00:00
Axel Dörfler
2d690920ac Renamed system/core to system/kernel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 13:22:10 +00:00