diff options
author | Jesús Espino <jespinog@gmail.com> | 2018-01-11 16:57:47 +0100 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2018-01-11 10:57:47 -0500 |
commit | 6990d052d5e95295e729aae28a0d30bfdcb98573 (patch) | |
tree | dc441fdd959997f97cfff298c833a2503cee4a37 /vendor/github.com/minio/go-homedir/homedir.go | |
parent | 0a9200c35d4f3c5c0462135f5f6dfe60bfe364e8 (diff) | |
download | chat-6990d052d5e95295e729aae28a0d30bfdcb98573.tar.gz chat-6990d052d5e95295e729aae28a0d30bfdcb98573.tar.bz2 chat-6990d052d5e95295e729aae28a0d30bfdcb98573.zip |
[XYZ-6] Add sampledata platform command (#8027)
* Add fake dependency
* [XYZ-6] Add sampledata platform command
* Creating EMOJI_NAME_MAX_LENGTH as a constant and using it where needed
Diffstat (limited to 'vendor/github.com/minio/go-homedir/homedir.go')
-rw-r--r-- | vendor/github.com/minio/go-homedir/homedir.go | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/vendor/github.com/minio/go-homedir/homedir.go b/vendor/github.com/minio/go-homedir/homedir.go index 092373801..ecc9c5e4b 100644 --- a/vendor/github.com/minio/go-homedir/homedir.go +++ b/vendor/github.com/minio/go-homedir/homedir.go @@ -1,6 +1,3 @@ -// Copyright 2016 (C) Mitchell Hashimoto -// Distributed under the MIT License. - // Package homedir implements a portable function to determine current user's homedir. package homedir @@ -15,23 +12,25 @@ import ( var DisableCache bool var homedirCache string -var cacheLock sync.Mutex +var cacheLock sync.RWMutex // Dir returns the home directory for the executing user. // // This uses an OS-specific method for discovering the home directory. // An error is returned if a home directory cannot be detected. func Dir() (string, error) { - cacheLock.Lock() - defer cacheLock.Unlock() - - // Return cached homedir if available. if !DisableCache { - if homedirCache != "" { - return homedirCache, nil + cacheLock.RLock() + cached := homedirCache + cacheLock.RUnlock() + if cached != "" { + return cached, nil } } + cacheLock.Lock() + defer cacheLock.Unlock() + // Determine OS speific current homedir. result, err := dir() if err != nil { |