move locking out of GC branch
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
Jeromy committed
Jul 8, 2015 at 11:18 UTC
1a03d5e37acdb54098c79397efe8cec23c30bfe7
1 file changed
+9
core/coreunix/add.go
+9
@@ -23,6 +23,9 @@ var log = logging.Logger("coreunix")
23
// Add builds a merkledag from the a reader, pinning all objects to the local
24
// datastore. Returns a key representing the root node.
25
func Add(n *core.IpfsNode, r io.Reader) (string, error) {
26
+ unlock := n.Blockstore.RLock()
27
+ defer unlock()
28
+
29
// TODO more attractive function signature importer.BuildDagFromReader
30
31
dagNode, err := importer.BuildDagFromReader(
@@ -43,6 +46,9 @@ func Add(n *core.IpfsNode, r io.Reader) (string, error) {
46
47
// AddR recursively adds files in |path|.
48
func AddR(n *core.IpfsNode, root string) (key string, err error) {
49
+ unlock := n.Blockstore.RLock()
50
+ defer unlock()
51
+
52
stat, err := os.Lstat(root)
53
if err != nil {
54
return "", err
@@ -79,6 +85,9 @@ func AddR(n *core.IpfsNode, root string) (key string, err error) {
85
func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, *merkledag.Node, error) {
86
file := files.NewReaderFile(filename, filename, ioutil.NopCloser(r), nil)
87
dir := files.NewSliceFile("", "", []files.File{file})
88
+
89
+ unlock := n.Blockstore.RLock()
90
+ defer unlock()
91
dagnode, err := addDir(n, dir)
92
if err != nil {
93
return "", nil, err