c++linuxappindicator

How to release an AppIndicator reference created with app_indicator_new in a forked child?


I have an App Indicator project that create a dynamically built launch menu.

The launch menu runs applications by fork/exec. I need to destroy the app indicator in the forked child or somehow get it to release all it's handles/mutexes or whatever. How do I close/release all these references from the forked child process?

The reason is that the menu sticks around after the parent AppIndicator process has exited. There must be a way to prevent this from happening.


Solution

  • It seems that this did the trick:

    AppIndicator * appind = app_indicator_new( /*params*/ )
    
    // ... use appind
    
    fork();
    g_object_unref(G_OBJECT(appind)); // remove reference
    execlp( /*params*/ );