feat(datatransfer): make dag service dt async

To more closely match the implementation, make calls to dag service in DT module asynchronous
This commit is contained in:
hannahhoward 2019-10-28 18:44:12 -07:00
parent d0b705705f
commit 4e1e43f10f

View File

@ -58,14 +58,16 @@ func (impl *dagserviceImpl) OpenPushDataChannel(to peer.ID, voucher Voucher, bas
// open a data transfer that will request data from the sending peer and
// transfer parts of the piece that match the selector
func (impl *dagserviceImpl) OpenPullDataChannel(to peer.ID, voucher Voucher, baseCid cid.Cid, Selector ipld.Node) (ChannelID, error) {
err := merkledag.FetchGraph(context.TODO(), baseCid, impl.dag)
var event Event
if err != nil {
event = Error
} else {
event = Complete
}
impl.subscriber(event, ChannelState{Channel: Channel{voucher: voucher}})
go func() {
err := merkledag.FetchGraph(context.TODO(), baseCid, impl.dag)
var event Event
if err != nil {
event = Error
} else {
event = Complete
}
impl.subscriber(event, ChannelState{Channel: Channel{voucher: voucher}})
}()
return ChannelID{}, nil
}