diff --git a/go/pkg/reader/reader.go b/go/pkg/reader/reader.go
index bbdcbca..57acec5 100644
--- a/go/pkg/reader/reader.go
+++ b/go/pkg/reader/reader.go
@@ -6,6 +6,7 @@
 	"fmt"
 	"io"
 	"os"
+	"sync"
 )
 
 type Initializable interface {
@@ -17,6 +18,7 @@
 	io.Reader
 	Initializable
 	SeekOffset(offset int64)
+	Close() error
 }
 
 type fileSeeker struct {
@@ -27,6 +29,8 @@
 	buffSize    int
 	seekOffset  int64
 	initialized bool
+
+	mu sync.Mutex
 }
 
 // NewFileReadSeeker wraps a buffered file reader with Seeking functionality.
@@ -54,6 +58,9 @@
 // Seek is a simplified version of io.Seeker. It only supports offsets from the
 // beginning of the file, and it errors lazily at the next Initialize.
 func (fio *fileSeeker) SeekOffset(offset int64) {
+	fio.mu.Lock()
+	defer fio.mu.Unlock()
+
 	fio.seekOffset = offset
 	fio.initialized = false
 	fio.reader = nil
@@ -62,11 +69,17 @@
 // IsInitialized indicates whether this reader is ready. If false, Read calls
 // will fail.
 func (fio *fileSeeker) IsInitialized() bool {
+	fio.mu.Lock()
+	defer fio.mu.Unlock()
+
 	return fio.initialized
 }
 
 // Initialize does the required IO pre-work for Read calls to function.
 func (fio *fileSeeker) Initialize() error {
+	fio.mu.Lock()
+	defer fio.mu.Unlock()
+
 	if fio.initialized {
 		return errors.New("Already initialized")
 	}
@@ -95,3 +108,18 @@
 	fio.initialized = true
 	return nil
 }
+
+// Close closes the open file handle if it hasn't been closed yet.
+func (fio *fileSeeker) Close() error {
+	fio.mu.Lock()
+	defer fio.mu.Unlock()
+
+	if fio.f == nil {
+		return nil
+	}
+	if err := fio.f.Close(); err != nil {
+		return fio.f.Close()
+	}
+	fio.initialized = false
+	return nil
+}
diff --git a/go/pkg/reader/reader_test.go b/go/pkg/reader/reader_test.go
index 5dfba4e..ef93632 100644
--- a/go/pkg/reader/reader_test.go
+++ b/go/pkg/reader/reader_test.go
@@ -47,6 +47,7 @@
 			data := make([]byte, tc.dataBuffSize)
 
 			r := NewFileReadSeeker(path, tc.IOBuffSize)
+			defer r.Close()
 			if _, err := r.Read(data); err == nil {
 				t.Errorf("Read() = should have err'd on unitialized reader")
 			}
@@ -100,6 +101,7 @@
 	}
 
 	r := NewFileReadSeeker(path, 10)
+	defer r.Close()
 	// Past Offset
 	r.SeekOffset(10)
 	if err := r.Initialize(); err != nil {
