Skip to content
  • Dan Winship's avatar
    gutils: Add functions for working with environment arrays · 409d9314
    Dan Winship authored and Matthias Clasen's avatar Matthias Clasen committed
    When spawning a child process, it is not safe to call setenv() before
    the fork() (because setenv() isn't thread-safe), but it's also not
    safe to call it after the fork() (because it's not async-signal-safe).
    So the only safe way to alter the environment for a child process from
    a threaded program is to pass a fully-formed envp array to
    exec*/g_spawn*/etc.
    
    So, add g_environ_getenv(), g_environ_setenv(), and
    g_environ_unsetenv(), which act like their namesakes, but work on
    arbitrary arrays rather than working directly on the environment.
    
    http://bugzilla.gnome.org/show_bug.cgi?id=659326
    409d9314