From: Sean H. <jal...@ho...> - 2001-10-13 18:28:25
|
I have a program with NotifyIcon in a program that does a fork(). When the child process exits, it calls the destructor for NotifyIcon and the parent process hangs. I get a warning about 'use of unitialized value' at GUI.pm line 2400: Win32::GUI::NotifyIcon::Delete( $self->{-parent}, -id => $self->{-id}, ); By process of elimination, I discovered that $self->{-parent} is the unitialized value it's complaining about here. But this doesn't occur if I exit the parent without fork()ing the child, and if I exit the parent process first, the error occurs upon exiting the child process. I checked, and $self->{-parent} is still defined after my system() call. I call exit() right after system(), so something is happening during global destruction that destroys the Window object before calling NotifyIcon::Delete - but only with a child process, not with the parent process. And it apparently destroys it for the parent process as well, although I thought fork()ing was supposed to give the child process a copy of the memory, not access to the parent's memory. I tried fixing it by adding return unless (defined ($self->{-parent})); right before the code above, but the parent process still hangs even though I don't get the error message. I used to have this program in a small window, and it worked fine. Once I added a NotifyIcon, though, I started getting this error. Has anyone else run into this error? _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp |