Sat, 17 Jan 2009 12:11:56 -0800
Hi all,

I'm working on a program that, when launched, displays an icon (a
Win32::GUI::NotifyIcon object) in the Windows taskbar notification
area-often referred to as the "system tray". When one of the buttons on my
GUI is clicked, a separate "worker" thread is created so that my GUI remains
responsive while a background task executes in the other thread. Everything
is fine up to that point, but when the thread eventually finishes, my icon
disappears from the system tray and I get the following three lines of
errors:

Attempt to free non-existent shared string '_NotifyIcon1', Perl interpreter:
0x1cfc6f4 at C:/Perl/site/lib/Win32/GUI.pm line 3429 during global
destruction.

Unbalanced string table refcount: (1) for "" during global destruction.

Unbalanced string table refcount: (1) for "DELETE" during global
destruction.

I'm happy to post my code, if necessary, but I thought someone might be able
to quickly tell me whether Win32::GUI::NotifyIcon is thread safe.

Thanks,
Rob

Hey Rob,
I'll admit it has been a while since I've popped my head into this mailing list, but I thought I could help on this one. First I have a couple of questions tho:
  1. Is this thread in control of the NotifyIcon in *any* way?
  2. Which perl? 5.10 has some quirkiness I've noticed with threading an certain parts of Win32::GUI if one isn't careful.
  3. Is it possible to pre-fork this thread and have it wait on instructions? (this totally bypasses this entire problem)
Hope I can help :)

Jason