summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/minio/go-homedir/homedir.go
diff options
context:
space:
mode:
authorJesús Espino <jespinog@gmail.com>2018-01-11 16:57:47 +0100
committerJoram Wilander <jwawilander@gmail.com>2018-01-11 10:57:47 -0500
commit6990d052d5e95295e729aae28a0d30bfdcb98573 (patch)
treedc441fdd959997f97cfff298c833a2503cee4a37 /vendor/github.com/minio/go-homedir/homedir.go
parent0a9200c35d4f3c5c0462135f5f6dfe60bfe364e8 (diff)
downloadchat-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.go19
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 {