* path.cc (mount_info::cygdrive_posix_path): Don't add trailing slash if
referring to something like c:\. * dcrt0.cc (dll_crt0_1): Move uinfo initialization prior to sig_send initialization to give signal thread a chance to finish. * debug.cc (WFSO): Move to sigproc.cc (WFMO): Ditto. * exceptions.cc (interruptible): Allocate slightly more space for directory just for paranoia's sake. (call_handler): Eliminate nonmain argument. Determine if main thread has set a frame pointer and use it if so. (sig_handle): Eliminate nonmain argument. * net.cc: Record frame information in appropriate routines throughout. * select.cc (select): Ditto. * sigproc.cc: Use sigthread structure to record mainthread id throughout. (sig_send): Record frame information for signal handler. (wait_sig): Reflect argument change in sig_handle. (WFSO): Move here and record frame information for signal handler. (WFMO): Ditto. * sigproc.h: Implement new "sigthread" class. Implement "sigframe" class for manipulating signal frame info. * thread.cc (__pthread_kill): Use standard _kill() function rather than calling sig_send directly. * winsup.h: Eliminate ebp element from signal_dispatch class.
This commit is contained in:
@ -9,7 +9,6 @@ details. */
|
||||
#define NO_DEBUG_DEFINES
|
||||
#include "winsup.h"
|
||||
#include "exceptions.h"
|
||||
#include "sync.h"
|
||||
|
||||
static muto NO_COPY *threadname_lock = NULL;
|
||||
#define lock_threadname() \
|
||||
@ -52,7 +51,7 @@ int __stdcall
|
||||
iscygthread()
|
||||
{
|
||||
DWORD tid = GetCurrentThreadId ();
|
||||
if (tid != maintid)
|
||||
if (tid != mainthread.id)
|
||||
for (DWORD i = 0; i < NTHREADS && threads[i].name != NULL; i++)
|
||||
if (threads[i].id == tid)
|
||||
return 1;
|
||||
@ -302,27 +301,3 @@ close_handle (const char *func, int ln, HANDLE h, const char *name, BOOL force)
|
||||
return ret;
|
||||
}
|
||||
#endif /*DEBUGGING*/
|
||||
|
||||
extern "C" {
|
||||
/* Provide a stack frame when calling WaitFor* functions */
|
||||
|
||||
#undef WaitForSingleObject
|
||||
|
||||
DWORD __stdcall
|
||||
WFSO (HANDLE hHandle, DWORD dwMilliseconds)
|
||||
{
|
||||
DWORD ret;
|
||||
ret = WaitForSingleObject (hHandle, dwMilliseconds);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#undef WaitForMultipleObjects
|
||||
|
||||
DWORD __stdcall
|
||||
WFMO (DWORD nCount, CONST HANDLE *lpHandles, BOOL fWaitAll, DWORD dwMilliseconds)
|
||||
{
|
||||
DWORD ret;
|
||||
ret = WaitForMultipleObjects (nCount, lpHandles, fWaitAll, dwMilliseconds);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user