Front page | perl.perl5.porters |
Postings from January 2004
[perl #24886] fork & Tk do not live together.
Thread Next
From:
Nikolay Kuznetsov
Date:
January 12, 2004 20:11
Subject:
[perl #24886] fork & Tk do not live together.
Message ID:
rt-3.0.8-24886-69947.1.53931530954729@perl.org
# New Ticket Created by "Nikolay Kuznetsov"
# Please include the string: [perl #24886]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=24886 >
This is a bug report for perl from obogrew@hotmail.com,
generated with the help of perlbug 1.34 running under perl v5.8.2.
-----------------------------------------------------------------
fork & Tk do not live together.
Please examine following code:
use Tk;
my($top);
$top = MainWindow->new();
if(fork())
{
Tk::MainLoop;
}
else
{
# child does nothing
}
crashes under windows 2000
works only if $top = MainWindow->new(); will be constructed after fork.
It means, it is impossible to fork when any reference to tk object is alive.
Eg. from Tk callbacks;
Please examine following code:
use Tk;
if(fork())
{
my($top);
$top = MainWindow->new();
$top->title("Parent window");
my($root) = $top->Frame()->pack(
-fill=>'both',
-expand=>1
);
my($button1) = $root->Button (
-text => 'Button 1 '
);
$button1->grid(
-in => $root,
-column => '1',
-row => '2'
);
$top->MainLoop;
}
else
{
my($top);
$top = MainWindow->new();
$top->title("child window");
my($root) = $top->Frame()->pack(
-fill=>'both',
-expand=>1
);
my($button1) = $root->Button (
-text => 'Button 1 '
);
$button1->grid(
-in => $root,
-column => '1',
-row => '2'
);
$top->MainLoop;
}
Crashes when mouse points to button ow parent window.
It means, it is impossible to manage two independent toplevel widgets in two
independent processes.
Tk version 8.24
The same under Perl 5.6.1
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=library
severity=medium
---
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 -DUS
E_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:\Perl8\lib\CORE" -m
achine: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
8\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:/Perl8/lib
C:/Perl8/site/lib
.
---
Environment for perl v5.8.2:
HOME (unset)
LANG (unset)
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=C:\Perl\bin\;C:\CentRun;C:\WINNT\system32;C:\WINNT;C:\Program
Files\TEPlugin;C:\Cmvc32\exe;C:\Rational\ClearCase\bin;C:\Program
Files\Rational\common;C:\Program
Files\Rational\ClearQuest;C:\Cmvc32\exe;C:\Perl\utils;C:\Tcl\bin;S:\Oracle\8
1700\bin;%Centura_Path%;%GEN_PATH%;%JDK_PATH%;%MPDE%;C:\Perl\bin\;C:\CentRun
;C:\WINNT\system32;C:\WINNT;C:\Program
Files\TEPlugin;C:\Cmvc32\exe;C:\Rational\ClearCase\bin;C:\Program
Files\Rational\common;C:\Program
Files\Rational\ClearQuest;C:\Cmvc32\exe;C:\Perl\utils
PERL_BADLANG (unset)
SHELL (unset)
Thread Next
-
[perl #24886] fork & Tk do not live together.
by Nikolay Kuznetsov