get bcStateStore @ toMessages timeout mTask
>>= \(msgs, st1)->set st1 bcStateStore
>>| toSDSRecords msgs st1 device
- >>= \sdss->upd (mergeShares sdss) sdsStore
+ >>= \sdss->updateShares device ((++) sdss)
>>| sendMessages msgs device
>>| makeTask wta -1
>>= withDevices device o addTask
toSDSRecords :: [MTaskMSGSend] BCState MTaskDevice -> Task [MTaskShare]
toSDSRecords s st device = treturn
- [makeShare wta device.deviceName sdsi sdsval
- \\{sdsi,sdspub,sdsval}<-st.sdss
- , (MTSds sdsi` _)<-s
- | sdsi == sdsi`]
-
- mergeShares a b = a ++ b
+ [makeShare wta sdsi sdsval
+ \\{sdsi,sdsval}<-st.sdss, (MTSds sdsi` _)<-s | sdsi == sdsi`]
addTask :: MTaskTask MTaskDevice -> MTaskDevice
addTask task device = {device & deviceTasks=[task:device.deviceTasks]}