summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-logger/writer.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-11-27 15:26:58 +0100
committerLibravatar GitHub <noreply@github.com>2021-11-27 15:26:58 +0100
commit182b4eea73881c611a0f519576aa6ad2aa6799c2 (patch)
tree230fac469690fcee8797b13585e739be148d4789 /vendor/codeberg.org/gruf/go-logger/writer.go
parentRequire confirmed email when checking oauth token (#332) (diff)
downloadgotosocial-182b4eea73881c611a0f519576aa6ad2aa6799c2.tar.xz
Update dependencies (#333)
Diffstat (limited to 'vendor/codeberg.org/gruf/go-logger/writer.go')
-rw-r--r--vendor/codeberg.org/gruf/go-logger/writer.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/codeberg.org/gruf/go-logger/writer.go b/vendor/codeberg.org/gruf/go-logger/writer.go
new file mode 100644
index 000000000..72321f518
--- /dev/null
+++ b/vendor/codeberg.org/gruf/go-logger/writer.go
@@ -0,0 +1,29 @@
+package logger
+
+import (
+ "io"
+ "io/ioutil"
+ "sync"
+)
+
+// AddSafety wraps an io.Writer to provide mutex locking protection
+func AddSafety(w io.Writer) io.Writer {
+ if w == nil {
+ w = ioutil.Discard
+ } else if sw, ok := w.(*safeWriter); ok {
+ return sw
+ }
+ return &safeWriter{wr: w}
+}
+
+// safeWriter wraps an io.Writer to provide mutex locking on write
+type safeWriter struct {
+ wr io.Writer
+ mu sync.Mutex
+}
+
+func (w *safeWriter) Write(b []byte) (int, error) {
+ w.mu.Lock()
+ defer w.mu.Unlock()
+ return w.wr.Write(b)
+}