1234567891011121314151617181920212223242526272829303132 |
- package gocsv
- //Wraps around SafeCSVWriter and makes it thread safe.
- import (
- "encoding/csv"
- "sync"
- )
- type SafeCSVWriter struct {
- *csv.Writer
- m sync.Mutex
- }
- func NewSafeCSVWriter(original *csv.Writer) *SafeCSVWriter {
- return &SafeCSVWriter{
- Writer: original,
- }
- }
- //Override write
- func (w *SafeCSVWriter) Write(row []string) error {
- w.m.Lock()
- defer w.m.Unlock()
- return w.Writer.Write(row)
- }
- //Override flush
- func (w *SafeCSVWriter) Flush() {
- w.m.Lock()
- w.Writer.Flush()
- w.m.Unlock()
- }
|