Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.93k stars 551 forks source link

re: Perl bug - SIGINT does not break through sleep #7001

Open p5pRT opened 20 years ago

p5pRT commented 20 years ago

Migrated from rt.perl.org#24738 (status was 'open')

Searchable as RT24738$

p5pRT commented 20 years ago

From terry.grieb@intel.com

Created by Terry.Grieb@intel.com

The following small example shows that hitting a Control/C does not break through a sleep so if you have a long sleep the program can not be aborted when you have a SIGINT handler.

$SIG{INT} = sub
{
die;
};

print "Note you can't interrupt the sleep\n";
print "Please hit CTRL/C within 10 secs\n";
sleep 10;
print "Too late. Sleep ended.\n";
exit( 0 );
Perl Info ``` Flags: category=core severity=high Site configuration information for perl v5.8.2: Configured by ActiveState at Tue Dec 9 10:19:27 2003. Summary of my perl5 (revision 5 version 8 subversion 2) configuration: Platform: osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=undef use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cl', ccflags ='-nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86' libpth=C:\PROGRA~1\MICROS~3\VC98\lib libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib gnulibc_version='undef' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86' Locally applied patches: ACTIVEPERL_LOCAL_PATCHES_ENTRY 21846 Configure gets d_u32align wrong 21739 [perl #24493] install.html not working 21737 Ooops. left an XXX comment in, and worse still it's a // comment 21735 utf8 keys now work for tied hashes 21734 Accessing unicode keys in tie hashes via hv_exists was broken 21733 ext/threads/t/problem.t 21732 Config::myconfig() fails under ithreads 21728 Update perlhist with 5.6.2 21723 Include 'SCCS' in the list of dir names ignored by installperl 21718 Empty subroutine as object method segfaults in 5.8.2 (sometimes) 21714 Fix bug #24380: assigning list with duplicated keys to a hash 21706 [perl #24460] [DOC PATCH] the begincheck program 21693 must copy changes from win32/makeifle.mk to wince/makefile.ce 21691 Update the list of pumpkings in perlhist.pod 21687 [PATCH 5.6.2-RC1 pod/perlhist.pod] Updated 21677 OS/2 docu 21676 Bug #24407: key for shared hash got stringified into wrong pool 21673 Be sure to use -fPIC not -fpic on Linux/SPARC 21672 extending the hash attack test 21671 Benchmark.pm cmpthese segfault 21662 'make minitest' fails for op/cproto and op/pat 21586 Comment that this 'optimisation' is actually a necessary fixup 21548 Sync with Pod::Perldoc 3.12 21540 Fix backward-compatibility issues in if.pm @INC for perl v5.8.2: C:/Perl/lib C:/Perl/site/lib . Environment for perl v5.8.2: HOME=C:\grieb LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=C:\perl\bin;C:\bin;C:\bin\X11;C:\mksnt;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\ntlocal;c:\local;C:\office2k\Office;C:\w2kResKit;C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin;c:\grieb\bin;c:\emacs\bin;c:\cmplr\bin;c:\netbatch\bin;c:\w2kreskit PERL_BADLANG (unset) SHELL=C:/mksnt/sh.exe ```
p5pRT commented 20 years ago

From @lizmat

At 20​:50 +0000 12/22/03\, "Grieb\, Terry" (via RT) wrote​:

The following small example shows that hitting a Control/C does not break through a sleep so if you have a long sleep the program can not be aborted when you have a SIGINT handler.

$SIG\{INT\} = sub
    \{
    die;
    \};

print "Note you can't interrupt the sleep\\n";
print "Please hit CTRL/C within 10 secs\\n";
sleep 10;
print "Too late\. Sleep ended\.\\n";
exit\( 0 \);

Must be a Windows issue. Works fine on Linux and MacOSX from 5.6.0 through 5.9.0.

Liz