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
This commit is contained in:
@@ -56,18 +56,18 @@ public:
|
||||
|
||||
void Publish(const void* object,
|
||||
const char* objectType);
|
||||
void Unpublish(bool threadsLocked = false);
|
||||
void Unpublish(bool schedulerLocked = false);
|
||||
|
||||
inline void NotifyOne(bool threadsLocked = false,
|
||||
inline void NotifyOne(bool schedulerLocked = false,
|
||||
status_t result = B_OK);
|
||||
inline void NotifyAll(bool threadsLocked = false,
|
||||
inline void NotifyAll(bool schedulerLocked = false,
|
||||
status_t result = B_OK);
|
||||
|
||||
static void NotifyOne(const void* object,
|
||||
bool threadsLocked = false,
|
||||
bool schedulerLocked = false,
|
||||
status_t result = B_OK);
|
||||
static void NotifyAll(const void* object,
|
||||
bool threadsLocked = false,
|
||||
bool schedulerLocked = false,
|
||||
status_t result = B_OK);
|
||||
// (both methods) caller must ensure that
|
||||
// the variable is not unpublished
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
void Dump() const;
|
||||
|
||||
private:
|
||||
void _Notify(bool all, bool threadsLocked,
|
||||
void _Notify(bool all, bool schedulerLocked,
|
||||
status_t result);
|
||||
void _NotifyLocked(bool all, status_t result);
|
||||
|
||||
@@ -124,16 +124,16 @@ ConditionVariableEntry::~ConditionVariableEntry()
|
||||
|
||||
|
||||
inline void
|
||||
ConditionVariable::NotifyOne(bool threadsLocked, status_t result)
|
||||
ConditionVariable::NotifyOne(bool schedulerLocked, status_t result)
|
||||
{
|
||||
_Notify(false, threadsLocked, result);
|
||||
_Notify(false, schedulerLocked, result);
|
||||
}
|
||||
|
||||
|
||||
inline void
|
||||
ConditionVariable::NotifyAll(bool threadsLocked, status_t result)
|
||||
ConditionVariable::NotifyAll(bool schedulerLocked, status_t result)
|
||||
{
|
||||
_Notify(true, threadsLocked, result);
|
||||
_Notify(true, schedulerLocked, result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user