@cryptotaxi247 / kubo / commits / 1a03d5e37

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