version 1.97, 2006/10/31 18:23:45
|
version 1.98, 2006/11/10 18:14:58
|
|
|
#endif | #endif |
} | } |
| |
Boolean Thread::is_cancelled(void) |
Boolean Thread::is_cancelled() |
{ | { |
return _cancelled; | return _cancelled; |
} | } |
|
|
Threads::sleep(msec); | Threads::sleep(msec); |
} | } |
| |
void Thread::join(void) |
void Thread::join() |
{ | { |
if (!_is_detached && !Threads::null(_handle.thid)) | if (!_is_detached && !Threads::null(_handle.thid)) |
pthread_join(_handle.thid.thread, &_exit_code); | pthread_join(_handle.thid.thread, &_exit_code); |
|
|
Threads::clear(_handle.thid); | Threads::clear(_handle.thid); |
} | } |
| |
void Thread::thread_init(void) |
void Thread::thread_init() |
{ | { |
#if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) | #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) |
pthread_setintr(PTHREAD_INTR_ENABLE); | pthread_setintr(PTHREAD_INTR_ENABLE); |
|
|
_cancel_enabled = true; | _cancel_enabled = true; |
} | } |
| |
void Thread::detach(void) |
void Thread::detach() |
{ | { |
_is_detached = true; | _is_detached = true; |
#if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) | #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) |
|
|
return sig; | return sig; |
} | } |
| |
Thread::Thread(ThreadReturnType(PEGASUS_THREAD_CDECL * start) (void *), void *parameter, Boolean detached):_is_detached(detached), |
Thread::Thread( |
|
ThreadReturnType(PEGASUS_THREAD_CDECL* start) (void*), |
|
void* parameter, |
|
Boolean detached) |
|
: _is_detached(detached), |
_cancel_enabled(true), | _cancel_enabled(true), |
_cancelled(false), | _cancelled(false), |
_start(start), _cleanup(), _tsd(), _thread_parm(parameter), _exit_code(0) |
_start(start), |
|
_cleanup(), |
|
_tsd(), |
|
_thread_parm(parameter), |
|
_exit_code(0) |
{ | { |
Threads::clear(_handle.thid); | Threads::clear(_handle.thid); |
} | } |
|
|
| |
#if defined(PEGASUS_HAVE_WINDOWS_THREADS) | #if defined(PEGASUS_HAVE_WINDOWS_THREADS) |
| |
ThreadStatus Thread::run(void) |
ThreadStatus Thread::run() |
{ | { |
// Note: A Win32 thread ID is not the same thing as a pthread ID. | // Note: A Win32 thread ID is not the same thing as a pthread ID. |
// Win32 threads have both a thread ID and a handle. The handle | // Win32 threads have both a thread ID and a handle. The handle |
|
|
return PEGASUS_THREAD_OK; | return PEGASUS_THREAD_OK; |
} | } |
| |
void Thread::cancel(void) |
void Thread::cancel() |
{ | { |
_cancelled = true; | _cancelled = true; |
} | } |
| |
void Thread::test_cancel(void) |
void Thread::test_cancel() |
{ | { |
if (_cancel_enabled && _cancelled) | if (_cancel_enabled && _cancelled) |
{ | { |
|
|
} | } |
} | } |
| |
Boolean Thread::is_cancelled(void) |
Boolean Thread::is_cancelled() |
{ | { |
return _cancelled; | return _cancelled; |
} | } |
| |
void Thread::thread_switch(void) |
void Thread::thread_switch() |
{ | { |
Sleep(0); | Sleep(0); |
} | } |
|
|
Sleep(milliseconds); | Sleep(milliseconds); |
} | } |
| |
void Thread::join(void) |
void Thread::join() |
{ | { |
if (!Threads::null(_handle.thid)) | if (!Threads::null(_handle.thid)) |
{ | { |
|
|
} | } |
} | } |
| |
void Thread::thread_init(void) |
void Thread::thread_init() |
{ | { |
_cancel_enabled = true; | _cancel_enabled = true; |
} | } |
| |
void Thread::detach(void) |
void Thread::detach() |
{ | { |
_is_detached = true; | _is_detached = true; |
} | } |
|
|
} | } |
| |
| |
//thread_data *Thread::put_tsd(const Sint8 *key, void (*delete_func)(void *), Uint32 size, void *value) |
|
|
|
|
|
void Thread::exit_self(ThreadReturnType exit_code) | void Thread::exit_self(ThreadReturnType exit_code) |
{ | { |
#ifndef PEGASUS_PLATFORM_AIX_RS_IBMCXX | #ifndef PEGASUS_PLATFORM_AIX_RS_IBMCXX |
|
|
return acceptLangs; | return acceptLangs; |
} | } |
| |
void Thread::setLanguages(AcceptLanguageList * langs) // l10n |
void Thread::setLanguages(AcceptLanguageList * langs) |
{ | { |
PEG_METHOD_ENTER(TRC_THREAD, "Thread::setLanguages"); | PEG_METHOD_ENTER(TRC_THREAD, "Thread::setLanguages"); |
| |
|
|
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
| |
void Thread::clearLanguages() // l10n |
void Thread::clearLanguages() |
{ | { |
PEG_METHOD_ENTER(TRC_THREAD, "Thread::clearLanguages"); | PEG_METHOD_ENTER(TRC_THREAD, "Thread::clearLanguages"); |
| |