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.