master
= get applicationOptions
>>- \eo->traceValue ("Master started on port " +++ toString eo.serverPort)
+// >-| set 42 (remoteShare (sharedStore "bork" 42) {domain="localhost",port=9099})
// >-| asyncTask (ExistingNode "localhost" 9099) (blockWait 5)
// >-| asyncTask "localhost" 9090 (blockWait 5)
// >-| asyncTask (PrivateNode 9099) (traceValue 5 >-| traceValue 42)
-// >-| asyncTaskSpawn 9099 (return 42)
- >-| sleepSortPar [5,1,3,8]
+ >-| asyncTask "localhost" 9099 (updateInformation [] 5)
+// >-| sleepSortPar [5,1,3,8]
>&^ viewSharedInformation []
@! ()
+asyncTaskChannel :: !String !Int !((sds () (Queue r) w) -> Task a) !((sds () (Queue w) r) -> Task b) -> Task (a, b)
+asyncTaskChannel host port remote local
+ = asyncTask host port (remote shareTo)
+ -&&-
+where
+ shareTo :: (sds () (Queue r) (Queue r))
+ shareTo = sdsFocus ("to-" +++ host +++ toString port) $ memoryStore "asyncITasks-channels" (Just newQueue)
+
+ shareFro :: (sds () (Queue w) (Queue w))
+ shareFro = sdsFocus ("fro-" +++ host +++ toString port) $ memoryStore "asyncITasks-channels" (Just newQueue)
+
blockWait :: Int -> Task Int
blockWait i = accWorld (sleep i)
where