#
24df6592 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
10f0fc8f |
|
31-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigwait(). * Not sure if it works as intended, as the specs are a bit vague. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc2001bb |
|
22-Feb-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
We have to update the pending signals thread flag when restoring the signal block mask when returning from a signal handler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24064 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0dd3108c |
|
21-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added SIGNAL_FLAG_DONT_RESTART_SYSCALL for send_signal_etc() which utilizes the THREAD_FLAG_DONT_RESTART_SYSCALL (but only in SIGCONT for now). * resume_thread() is now using that flag to be compatible with BeOS. * This fixes the Terminal hanging on close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24045 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
df716df5 |
|
05-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added is_signal_blocked() convenience function. * Defined flag SIGNAL_FLAG_TEAMS_LOCKED for send_signal_etc(), so it can be called with the team lock being held. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22186 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33f0dbe4 |
|
03-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Resolved TODO: waitpid() clears pending SIGCHLD, if the signal is blocked and no other child status is available. * Respect SA_NOCLDWAIT and ignored SIGCHLD in waitpid(): Unless a child status is available immediately, the thread shall block until all children are gone. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b70ea59 |
|
16-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigaltstack() and set_signal_stack(), thus closing bug #1401. * On exec() the new function thread_reset_for_exec() is called which clears the signals and cancels an eventually set alarm. Both things weren't done before... * Some minor cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21989 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
50374cbd |
|
20-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the signal handling code so that handle_signals() can be called without having the thread lock held and interrupts disabled. Cleaned up the signal handling code, and fixed some minor bugs with blockable vs. non-blockable signals. thread_debug_info was using uint64 for signals sets instead of sigset_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab38c904 |
|
13-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigpending, kernel support isn't implemented (fixed partly bug #49) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14181 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96e65794 |
|
07-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigsuspend, kernel support isn't implemented (fixed partly bug #48) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d4112f6b |
|
29-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Applied some changes suggested by mmu_man, more to come, though: - has_signals_pending() is not declared in Be headers, and it isn't declared in our KernelExport.h anymore, too - removed snooze_etc() from KernelExport.h, as it's already defined in OS.h (and really exported by libroot.so). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12506 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20b656f0 |
|
12-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Check the thread debug signal ignore masks before notifying the debugger of a signal. * Added sigaction_etc(). It's just a sigaction() for which the thread in question can be specified. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db75a08b |
|
08-Mar-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Solved the big mystery in Ingo's life: in C, func(); and func(void); is not the same. This fixes the "missing prototype" warnings. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
782c98af |
|
25-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added KILL_SIGNALS, a signal mask for SIGKILL + SIGKILLTHR. * Removed SIGKILLTHR from BLOCKABLE_SIGS. * Made header C++ safe. * Added function is_kill_signal_pending(), returning true, if a SIGKILL[THR] is pending for the current thread. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1ec1e118 |
|
09-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
handle_signals() now takes a pointer to a cpu_state, so that after restoring and re-disabling interrupts the state can be propagated back to the caller. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11309 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
46365cce |
|
31-Aug-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added new syscall _kern_sigprocmask(), renamed other signal syscalls to the new naming scheme. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8768 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
383cdedb |
|
28-Aug-2004 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Several follow-up changes required by the changes either to the VFS syscalls or to the syscall mechanism (which exposed naming and parameter inconsistencies). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8703 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a9731b41 |
|
26-Jan-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Housekeeping changes and small bug-fixes: Added new syscall for set_thread_priority(). Replaced the userland syscall snooze_until() with snooze_etc() (the latter has to be exported to userland and realize snooze() and snooze_until()). Cleaned the sources - scheduler functions now have the scheduler_ prefix. Moved signal related stuff into ksignal.h (out of thread.h). Replaced public kernel API with direct exports (i.e. resume_thread() instead of thread_resume_thread()). Removed the thread_create_XXX_thread*() calls, and replaced them with a BeOS compatible set. Made some fields of struct thread a bit prettier. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
24df65921befcd0ad0c5c7866118f922da61cb96 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d80c86e19e2610e7444a4fcefe3e0f8e6 |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
10f0fc8f2063591b21f7fcd699cde574ec1c68ca |
|
31-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigwait(). * Not sure if it works as intended, as the specs are a bit vague. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc2001bb3999da0cde5b83b5f448de628cdc5f08 |
|
22-Feb-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
We have to update the pending signals thread flag when restoring the signal block mask when returning from a signal handler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24064 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0dd3108ca08b4ebac77328b089f0c4394438bac8 |
|
21-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added SIGNAL_FLAG_DONT_RESTART_SYSCALL for send_signal_etc() which utilizes the THREAD_FLAG_DONT_RESTART_SYSCALL (but only in SIGCONT for now). * resume_thread() is now using that flag to be compatible with BeOS. * This fixes the Terminal hanging on close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24045 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
df716df51dd01317209b9523c7230307d3531f3b |
|
05-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added is_signal_blocked() convenience function. * Defined flag SIGNAL_FLAG_TEAMS_LOCKED for send_signal_etc(), so it can be called with the team lock being held. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22186 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33f0dbe40a37eee0ead3a4522d78197ff1d1e747 |
|
03-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Resolved TODO: waitpid() clears pending SIGCHLD, if the signal is blocked and no other child status is available. * Respect SA_NOCLDWAIT and ignored SIGCHLD in waitpid(): Unless a child status is available immediately, the thread shall block until all children are gone. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b70ea5992e7913f4ce19c4bc2ab75273364ff06 |
|
16-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigaltstack() and set_signal_stack(), thus closing bug #1401. * On exec() the new function thread_reset_for_exec() is called which clears the signals and cancels an eventually set alarm. Both things weren't done before... * Some minor cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21989 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
50374cbdcac9fc96ae187fff7b7a75151a508d65 |
|
20-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the signal handling code so that handle_signals() can be called without having the thread lock held and interrupts disabled. Cleaned up the signal handling code, and fixed some minor bugs with blockable vs. non-blockable signals. thread_debug_info was using uint64 for signals sets instead of sigset_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab38c90461c6b8cf21169e0e25f6fd9b9b8a612a |
|
13-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigpending, kernel support isn't implemented (fixed partly bug #49) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14181 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96e6579454d896c92b04926766fc14c98fdf9249 |
|
07-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigsuspend, kernel support isn't implemented (fixed partly bug #48) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d4112f6bc56784206024c5731f829f1e68e9e52a |
|
29-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Applied some changes suggested by mmu_man, more to come, though: - has_signals_pending() is not declared in Be headers, and it isn't declared in our KernelExport.h anymore, too - removed snooze_etc() from KernelExport.h, as it's already defined in OS.h (and really exported by libroot.so). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12506 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20b656f066536c7423b4e6d1969297eb45b25f9b |
|
12-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Check the thread debug signal ignore masks before notifying the debugger of a signal. * Added sigaction_etc(). It's just a sigaction() for which the thread in question can be specified. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db75a08b982b5471ca529d6d3b6f7e32f1108158 |
|
08-Mar-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Solved the big mystery in Ingo's life: in C, func(); and func(void); is not the same. This fixes the "missing prototype" warnings. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
782c98afd9b856369fe39dae8b1abf8c7a1ea4f3 |
|
25-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added KILL_SIGNALS, a signal mask for SIGKILL + SIGKILLTHR. * Removed SIGKILLTHR from BLOCKABLE_SIGS. * Made header C++ safe. * Added function is_kill_signal_pending(), returning true, if a SIGKILL[THR] is pending for the current thread. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1ec1e1185bb45198f59c6d1e6e645677f3318986 |
|
09-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
handle_signals() now takes a pointer to a cpu_state, so that after restoring and re-disabling interrupts the state can be propagated back to the caller. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11309 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
46365ccea618326def79310864f7a26364f6ba09 |
|
31-Aug-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added new syscall _kern_sigprocmask(), renamed other signal syscalls to the new naming scheme. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8768 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
383cdedbd2f1de98851f38bf12d8edef67346ffd |
|
28-Aug-2004 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Several follow-up changes required by the changes either to the VFS syscalls or to the syscall mechanism (which exposed naming and parameter inconsistencies). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8703 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a9731b41c119ec606f9585d2370c0d5d5539eb53 |
|
26-Jan-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Housekeeping changes and small bug-fixes: Added new syscall for set_thread_priority(). Replaced the userland syscall snooze_until() with snooze_etc() (the latter has to be exported to userland and realize snooze() and snooze_until()). Cleaned the sources - scheduler functions now have the scheduler_ prefix. Moved signal related stuff into ksignal.h (out of thread.h). Replaced public kernel API with direct exports (i.e. resume_thread() instead of thread_resume_thread()). Removed the thread_create_XXX_thread*() calls, and replaced them with a BeOS compatible set. Made some fields of struct thread a bit prettier. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|