- 15 Jan, 2015 13 commits
-
-
Brian Tiger Chow authored
hotfix(FSRepo) allow multiple goroutines to call
-
Brian Tiger Chow authored
doh! I forgot to make sure leveldb is only opened once. thanks for catching this @mappum * You may be wondering why we don't just share pointers to FSRepos. We want to manage the lifecycle of the FSRepo by tracking its `state`. Thus each FSRepo/goroutine requires private instance variables. For this reason, each `fsrepo.At(p)` caller must get its own goroutine. * There's a test in `fsrepo` because callers desire the ability to Open from multiple goroutines. There's a test in `component` because this is where the actual work needs to go in order to provide the desired contract. If the `component` package moves, the assurances need to move along with it. cc @whyrusleeping @jbenet side note: there are a couple packages in FSRepo that it might be worthwhile to extract once the dust settles on this feature-set.
-
Brian Tiger Chow authored
@jbenet will move in upcoming branch/PR
-
Brian Tiger Chow authored
feat(eventlog): e := EventBegin; e.Done()
-
Brian Tiger Chow authored
```Go e := log.EventBegin(ctx, "provide") e.Done() e := log.EventBegin(ctx, "provide") e.Close() // implements io.Closer in case you want to register with some lifecycle management system. ```
-
Juan Batiz-Benet authored
more d3 niceness.
-
Matt Bell authored
-
Brian Tiger Chow authored
race fixes
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
All the datastores used by pinners and so on should be mutex wrapped. One issue with changing all of them from ds.Datastore -> ds.ThreadSafeDatastore is that we wrap the incoming ds.ThreadSafeDatastore with other datastores, which do not implement the interface. Re-wrapping again causes double locking. (which may be ok..., but...) any ideas?
-
Juan Batiz-Benet authored
testutil ci pkgs check env vars
-
Brian Tiger Chow authored
-
Juan Batiz-Benet authored
Good thing, i checked one wrong, too!
-
- 14 Jan, 2015 27 commits
-
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
diag/net: visualizing in d3 and dot
-
Juan Batiz-Benet authored
-
Brian Tiger Chow authored
refactor(fsrepo.FSRepo): manage the Datastore and daemon.lock
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Juan Batiz-Benet authored
-
Brian Tiger Chow authored
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
"for each desired change, make the change easy (warning: this may be hard), then make the easy change" - Kent Beck https://twitter.com/KentBeck/status/250733358307500032 http://martinfowler.com/articles/preparatory-refactoring-example.html cc @jbenet @whyrusleeping
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
The struct was getting unmanageable. extracted the config component to reduce complexity. The datastore will be written as another component.
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
-
Brian Tiger Chow authored
fix(fsrepo): extract private, unsynced method to prevent deadlock
-
Brian Tiger Chow authored
-