diff options
author | axel <axel@liljencrantz.se> | 2005-11-28 09:22:08 +1000 |
---|---|---|
committer | axel <axel@liljencrantz.se> | 2005-11-28 09:22:08 +1000 |
commit | bda7948719555dd7745a416d79aa7e21a252fbdb (patch) | |
tree | 04c80e052808cf612be9584054d395f5294c1c0c /env.c | |
parent | e800fca499a537c0c57e7e504ed2a4ceff91fda4 (diff) |
Make sure fishd synchronization happens only when needed
darcs-hash:20051127232208-ac50b-927157fb9b5d3e44981f9ec029735531ae59fd61.gz
Diffstat (limited to 'env.c')
-rw-r--r-- | env.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -592,8 +592,11 @@ void env_set( const wchar_t *key, else { if( !proc_had_barrier) + { + proc_had_barrier=1; env_universal_barrier(); - + } + if( env_universal_get( key ) ) { int export = 0; @@ -808,7 +811,11 @@ wchar_t *env_get( const wchar_t *key ) env = env->next; } if( !proc_had_barrier) + { + proc_had_barrier=1; env_universal_barrier(); + } + item = env_universal_get( key ); if( !item || (wcscmp( item, ENV_NULL )==0)) @@ -845,7 +852,11 @@ int env_exist( const wchar_t *key ) env = env->next; } if( !proc_had_barrier) + { + proc_had_barrier=1; env_universal_barrier(); + } + item = env_universal_get( key ); return item != 0; @@ -1079,8 +1090,11 @@ static void export_func2( const void *k, const void *v, void *aux ) char **env_export_arr( int recalc) { if( recalc && !proc_had_barrier) + { + proc_had_barrier=1; env_universal_barrier(); - + } + if( has_changed ) { array_list_t uni; |