aboutsummaryrefslogtreecommitdiffhomepage
path: root/env.c
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2005-11-28 09:22:08 +1000
committerGravatar axel <axel@liljencrantz.se>2005-11-28 09:22:08 +1000
commitbda7948719555dd7745a416d79aa7e21a252fbdb (patch)
tree04c80e052808cf612be9584054d395f5294c1c0c /env.c
parente800fca499a537c0c57e7e504ed2a4ceff91fda4 (diff)
Make sure fishd synchronization happens only when needed
darcs-hash:20051127232208-ac50b-927157fb9b5d3e44981f9ec029735531ae59fd61.gz
Diffstat (limited to 'env.c')
-rw-r--r--env.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/env.c b/env.c
index 578e0350..d9c53a42 100644
--- a/env.c
+++ b/env.c
@@ -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;