* cygwin.din: Fix some erroneous SIGFE/NOSIGFE settings.

* cygthread.cc (cygthread::callfunc): Revert below change.  Make ev a manual
reset event again.  so that it will be reset by WaitFor*Object as appropriate.
(cygthread::stub): Ditto.
(cygthread::terminate_thread): Reset ev if it was found to have been set.
This commit is contained in:
Christopher Faylor 2006-03-01 21:31:24 +00:00
parent ee93375872
commit 8d0f58ef37
3 changed files with 59 additions and 43 deletions

View File

@ -1,3 +1,16 @@
2006-03-01 Christopher Faylor <cgf@timesys.com>
* cygwin.din: Fix some erroneous SIGFE/NOSIGFE settings.
2006-03-01 Christopher Faylor <cgf@timesys.com>
* cygthread.cc (cygthread::callfunc): Revert below change. Make ev a
manual reset event again. so that it will be reset by WaitFor*Object
as appropriate.
(cygthread::stub): Ditto.
(cygthread::terminate_thread): Reset ev if it was found to have been
set.
2006-03-01 Christopher Faylor <cgf@timesys.com> 2006-03-01 Christopher Faylor <cgf@timesys.com>
* analyze_sigfe: New script. * analyze_sigfe: New script.

View File

@ -36,7 +36,7 @@ cygthread::callfunc (bool issimplestub)
else else
{ {
if (issimplestub) if (issimplestub)
ev = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL); ev = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL);
pass_arg = alloca (arglen); pass_arg = alloca (arglen);
memcpy (pass_arg, arg, arglen); memcpy (pass_arg, arg, arglen);
SetEvent (ev); SetEvent (ev);
@ -78,7 +78,7 @@ cygthread::stub (VOID *arg)
debug_printf ("thread '%s', id %p, stack_ptr %p", info->name (), info->id, info->stack_ptr); debug_printf ("thread '%s', id %p, stack_ptr %p", info->name (), info->id, info->stack_ptr);
if (!info->ev) if (!info->ev)
{ {
info->ev = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL); info->ev = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL);
info->thread_sync = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL); info->thread_sync = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL);
} }
} }
@ -303,8 +303,8 @@ cygthread::terminate_thread ()
if (!inuse || exiting) if (!inuse || exiting)
goto force_notterminated; goto force_notterminated;
if (ev) if (ev && !(terminated = WaitForSingleObject (ev, 0) != WAIT_OBJECT_0))
terminated = WaitForSingleObject (ev, 0) != WAIT_OBJECT_0; ResetEvent (ev);
MEMORY_BASIC_INFORMATION m; MEMORY_BASIC_INFORMATION m;
memset (&m, 0, sizeof (m)); memset (&m, 0, sizeof (m));
@ -319,7 +319,12 @@ cygthread::terminate_thread ()
if (is_freerange) if (is_freerange)
free (this); free (this);
else else
release (true); {
#ifdef DEBUGGING
terminated = true;
#endif
release (true);
}
goto out; goto out;

View File

@ -215,7 +215,7 @@ _atoi = atoi NOSIGFE
atol NOSIGFE atol NOSIGFE
_atol = atol NOSIGFE _atol = atol NOSIGFE
atoll NOSIGFE atoll NOSIGFE
basename SIGFE basename NOSIGFE
bcmp NOSIGFE bcmp NOSIGFE
_bcmp = bcmp NOSIGFE _bcmp = bcmp NOSIGFE
bcopy NOSIGFE bcopy NOSIGFE
@ -253,8 +253,8 @@ _chown32 = chown32 SIGFE
chroot SIGFE chroot SIGFE
_chroot = chroot SIGFE _chroot = chroot SIGFE
cleanup_glue NOSIGFE cleanup_glue NOSIGFE
clearerr NOSIGFE clearerr SIGFE
_clearerr = clearerr NOSIGFE _clearerr = clearerr SIGFE
clock SIGFE clock SIGFE
_clock = clock SIGFE _clock = clock SIGFE
clock_gettime SIGFE clock_gettime SIGFE
@ -264,8 +264,7 @@ close SIGFE
_close = close SIGFE _close = close SIGFE
closedir SIGFE closedir SIGFE
_closedir = closedir SIGFE _closedir = closedir SIGFE
closelog NOSIGFE closelog SIGFE
_closelog = closelog NOSIGFE
copysign NOSIGFE copysign NOSIGFE
_copysign = copysign NOSIGFE _copysign = copysign NOSIGFE
copysignf NOSIGFE copysignf NOSIGFE
@ -280,7 +279,7 @@ coshf NOSIGFE
_coshf = coshf NOSIGFE _coshf = coshf NOSIGFE
creat SIGFE creat SIGFE
_creat = creat SIGFE _creat = creat SIGFE
ctermid NOSIGFE ctermid SIGFE
ctime SIGFE ctime SIGFE
_ctime = ctime SIGFE _ctime = ctime SIGFE
ctime_r SIGFE ctime_r SIGFE
@ -302,8 +301,8 @@ cygwin_conv_to_posix_path SIGFE
cygwin32_conv_to_posix_path = cygwin_conv_to_posix_path SIGFE cygwin32_conv_to_posix_path = cygwin_conv_to_posix_path SIGFE
cygwin_conv_to_win32_path SIGFE cygwin_conv_to_win32_path SIGFE
cygwin32_conv_to_win32_path = cygwin_conv_to_win32_path SIGFE cygwin32_conv_to_win32_path = cygwin_conv_to_win32_path SIGFE
cygwin_detach_dll NOSIGFE cygwin_detach_dll SIGFE
cygwin32_detach_dll = cygwin_detach_dll NOSIGFE cygwin32_detach_dll = cygwin_detach_dll SIGFE
cygwin_dll_init NOSIGFE cygwin_dll_init NOSIGFE
endprotoent = cygwin_endprotoent SIGFE endprotoent = cygwin_endprotoent SIGFE
endservent = cygwin_endservent SIGFE endservent = cygwin_endservent SIGFE
@ -325,7 +324,7 @@ getservbyport = cygwin_getservbyport SIGFE
getservent = cygwin_getservent SIGFE getservent = cygwin_getservent SIGFE
getsockname = cygwin_getsockname SIGFE getsockname = cygwin_getsockname SIGFE
getsockopt = cygwin_getsockopt SIGFE getsockopt = cygwin_getsockopt SIGFE
getsubopt SIGFE getsubopt NOSIGFE
getusershell SIGFE getusershell SIGFE
herror = cygwin_herror SIGFE herror = cygwin_herror SIGFE
hstrerror = cygwin_hstrerror NOSIGFE hstrerror = cygwin_hstrerror NOSIGFE
@ -336,15 +335,15 @@ inet_network = cygwin_inet_network SIGFE
inet_ntoa = cygwin_inet_ntoa SIGFE inet_ntoa = cygwin_inet_ntoa SIGFE
inet_ntop = cygwin_inet_ntop SIGFE inet_ntop = cygwin_inet_ntop SIGFE
cygwin_internal NOSIGFE cygwin_internal NOSIGFE
cygwin32_internal = cygwin_internal NOSIGFE cygwin32_internal = cygwin_internal SIGFE
listen = cygwin_listen SIGFE listen = cygwin_listen SIGFE
cygwin_logon_user SIGFE cygwin_logon_user SIGFE
lstat SIGFE lstat SIGFE
_lstat = lstat SIGFE _lstat = lstat SIGFE
cygwin_posix_path_list_p NOSIGFE cygwin_posix_path_list_p NOSIGFE
cygwin32_posix_path_list_p = cygwin_posix_path_list_p NOSIGFE cygwin32_posix_path_list_p = cygwin_posix_path_list_p NOSIGFE
cygwin_posix_to_win32_path_list NOSIGFE cygwin_posix_to_win32_path_list SIGFE
cygwin32_posix_to_win32_path_list = cygwin_posix_to_win32_path_list NOSIGFE cygwin32_posix_to_win32_path_list = cygwin_posix_to_win32_path_list SIGFE
cygwin_posix_to_win32_path_list_buf_size SIGFE cygwin_posix_to_win32_path_list_buf_size SIGFE
cygwin32_posix_to_win32_path_list_buf_size = cygwin_posix_to_win32_path_list_buf_size SIGFE cygwin32_posix_to_win32_path_list_buf_size = cygwin_posix_to_win32_path_list_buf_size SIGFE
rcmd = cygwin_rcmd SIGFE rcmd = cygwin_rcmd SIGFE
@ -362,7 +361,7 @@ send = cygwin_send SIGFE
sendmsg = cygwin_sendmsg SIGFE sendmsg = cygwin_sendmsg SIGFE
sendto = cygwin_sendto SIGFE sendto = cygwin_sendto SIGFE
cygwin_set_impersonation_token SIGFE cygwin_set_impersonation_token SIGFE
setprogname SIGFE setprogname NOSIGFE
setprotoent = cygwin_setprotoent SIGFE setprotoent = cygwin_setprotoent SIGFE
setservent = cygwin_setservent SIGFE setservent = cygwin_setservent SIGFE
setsockopt = cygwin_setsockopt SIGFE setsockopt = cygwin_setsockopt SIGFE
@ -373,8 +372,8 @@ cygwin_split_path NOSIGFE
cygwin32_split_path = cygwin_split_path NOSIGFE cygwin32_split_path = cygwin_split_path NOSIGFE
cygwin_stackdump SIGFE cygwin_stackdump SIGFE
cygwin_umount SIGFE cygwin_umount SIGFE
cygwin_win32_to_posix_path_list NOSIGFE cygwin_win32_to_posix_path_list SIGFE
cygwin32_win32_to_posix_path_list = cygwin_win32_to_posix_path_list NOSIGFE cygwin32_win32_to_posix_path_list = cygwin_win32_to_posix_path_list SIGFE
cygwin_win32_to_posix_path_list_buf_size SIGFE cygwin_win32_to_posix_path_list_buf_size SIGFE
cygwin32_win32_to_posix_path_list_buf_size = cygwin_win32_to_posix_path_list_buf_size SIGFE cygwin32_win32_to_posix_path_list_buf_size = cygwin_win32_to_posix_path_list_buf_size SIGFE
cygwin_winpid_to_pid SIGFE cygwin_winpid_to_pid SIGFE
@ -384,7 +383,7 @@ difftime NOSIGFE
_difftime = difftime NOSIGFE _difftime = difftime NOSIGFE
dirfd SIGFE dirfd SIGFE
_dirfd = dirfd SIGFE _dirfd = dirfd SIGFE
dirname SIGFE dirname NOSIGFE
div NOSIGFE div NOSIGFE
_div = div NOSIGFE _div = div NOSIGFE
dlclose SIGFE dlclose SIGFE
@ -500,8 +499,8 @@ _fdopen = fdopen SIGFE
_fdopen64 = fdopen64 SIGFE _fdopen64 = fdopen64 SIGFE
feof SIGFE feof SIGFE
_feof = feof SIGFE _feof = feof SIGFE
ferror NOSIGFE ferror SIGFE
_ferror = ferror NOSIGFE _ferror = ferror SIGFE
fflush SIGFE fflush SIGFE
_fflush = fflush SIGFE _fflush = fflush SIGFE
ffs NOSIGFE ffs NOSIGFE
@ -513,8 +512,8 @@ _fgetpos = fgetpos SIGFE
_fgetpos64 = fgetpos64 SIGFE _fgetpos64 = fgetpos64 SIGFE
fgets SIGFE fgets SIGFE
_fgets = fgets SIGFE _fgets = fgets SIGFE
fileno NOSIGFE fileno SIGFE
_fileno = fileno NOSIGFE _fileno = fileno SIGFE
finite NOSIGFE finite NOSIGFE
_finite = finite NOSIGFE _finite = finite NOSIGFE
finitef NOSIGFE finitef NOSIGFE
@ -630,8 +629,8 @@ getchar_unlocked SIGFE
_getchar_unlocked = getchar_unlocked SIGFE _getchar_unlocked = getchar_unlocked SIGFE
getcwd SIGFE getcwd SIGFE
_getcwd = getcwd SIGFE _getcwd = getcwd SIGFE
__getdelim NOSIGFE __getdelim SIGFE
getdelim = __getdelim NOSIGFE getdelim = __getdelim SIGFE
getdomainname SIGFE getdomainname SIGFE
_getdomainname = getdomainname SIGFE _getdomainname = getdomainname SIGFE
getdtablesize NOSIGFE getdtablesize NOSIGFE
@ -663,8 +662,8 @@ _getgroups = getgroups SIGFE
_getgroups32 = getgroups32 SIGFE _getgroups32 = getgroups32 SIGFE
gethostid SIGFE gethostid SIGFE
getitimer SIGFE getitimer SIGFE
__getline NOSIGFE __getline SIGFE
getline = __getline NOSIGFE getline = __getline SIGFE
getlogin_r NOSIGFE getlogin_r NOSIGFE
getlogin NOSIGFE getlogin NOSIGFE
_getlogin = getlogin NOSIGFE _getlogin = getlogin NOSIGFE
@ -686,7 +685,7 @@ getpid NOSIGFE
_getpid = getpid NOSIGFE _getpid = getpid NOSIGFE
getppid NOSIGFE getppid NOSIGFE
_getppid = getppid NOSIGFE _getppid = getppid NOSIGFE
getpriority NOSIGFE getpriority SIGFE
getpwduid NOSIGFE getpwduid NOSIGFE
_getpwduid = getpwduid NOSIGFE _getpwduid = getpwduid NOSIGFE
getpwent SIGFE getpwent SIGFE
@ -1058,7 +1057,7 @@ pthread_exit SIGFE
pthread_getconcurrency SIGFE pthread_getconcurrency SIGFE
pthread_getschedparam SIGFE pthread_getschedparam SIGFE
pthread_getsequence_np SIGFE pthread_getsequence_np SIGFE
pthread_getspecific NOSIGFE pthread_getspecific SIGFE
pthread_join SIGFE pthread_join SIGFE
pthread_key_create SIGFE pthread_key_create SIGFE
pthread_key_delete SIGFE pthread_key_delete SIGFE
@ -1097,7 +1096,7 @@ pthread_setcancelstate SIGFE
pthread_setcanceltype SIGFE pthread_setcanceltype SIGFE
pthread_setconcurrency SIGFE pthread_setconcurrency SIGFE
pthread_setschedparam SIGFE pthread_setschedparam SIGFE
pthread_setspecific NOSIGFE pthread_setspecific SIGFE
pthread_sigmask SIGFE pthread_sigmask SIGFE
pthread_suspend SIGFE pthread_suspend SIGFE
pthread_testcancel SIGFE pthread_testcancel SIGFE
@ -1244,7 +1243,7 @@ setpgid SIGFE
_setpgid = setpgid SIGFE _setpgid = setpgid SIGFE
setpgrp SIGFE setpgrp SIGFE
_setpgrp = setpgrp SIGFE _setpgrp = setpgrp SIGFE
setpriority NOSIGFE setpriority SIGFE
setpwent NOSIGFE setpwent NOSIGFE
_setpwent = setpwent NOSIGFE _setpwent = setpwent NOSIGFE
setregid SIGFE setregid SIGFE
@ -1369,10 +1368,10 @@ strcspn NOSIGFE
_strcspn = strcspn NOSIGFE _strcspn = strcspn NOSIGFE
strdup SIGFE strdup SIGFE
_strdup = strdup SIGFE _strdup = strdup SIGFE
strerror NOSIGFE strerror SIGFE
_strerror = strerror NOSIGFE _strerror = strerror SIGFE
strerror_r NOSIGFE strerror_r SIGFE
_strerror_r = strerror_r NOSIGFE _strerror_r = strerror_r SIGFE
strftime SIGFE strftime SIGFE
_strftime = strftime SIGFE _strftime = strftime SIGFE
strlcat NOSIGFE strlcat NOSIGFE
@ -1401,7 +1400,7 @@ strrchr NOSIGFE
_strrchr = strrchr NOSIGFE _strrchr = strrchr NOSIGFE
strsep NOSIGFE strsep NOSIGFE
_strsep = strsep NOSIGFE _strsep = strsep NOSIGFE
strsignal NOSIGFE strsignal SIGFE
strspn NOSIGFE strspn NOSIGFE
_strspn = strspn NOSIGFE _strspn = strspn NOSIGFE
strstr NOSIGFE strstr NOSIGFE
@ -1434,8 +1433,7 @@ swab NOSIGFE
_swab = swab NOSIGFE _swab = swab NOSIGFE
symlink SIGFE symlink SIGFE
_symlink = symlink SIGFE _symlink = symlink SIGFE
sync NOSIGFE sync SIGFE
_sync = sync NOSIGFE
sysconf SIGFE sysconf SIGFE
_sysconf = sysconf SIGFE _sysconf = sysconf SIGFE
syslog SIGFE syslog SIGFE
@ -1479,7 +1477,7 @@ tgamma NOSIGFE
tgammaf NOSIGFE tgammaf NOSIGFE
time SIGFE time SIGFE
timelocal SIGFE timelocal SIGFE
timegm SIGFE timegm NOSIGFE
_time = time SIGFE _time = time SIGFE
timer_create SIGFE timer_create SIGFE
timer_delete SIGFE timer_delete SIGFE
@ -1527,8 +1525,8 @@ _ungetc = ungetc SIGFE
unlink SIGFE unlink SIGFE
_unlink = unlink SIGFE _unlink = unlink SIGFE
unlockpt NOSIGFE unlockpt NOSIGFE
unsetenv NOSIGFE unsetenv SIGFE
_unsetenv = unsetenv NOSIGFE _unsetenv = unsetenv SIGFE
usleep SIGFE usleep SIGFE
_usleep = usleep SIGFE _usleep = usleep SIGFE
utime SIGFE utime SIGFE