X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=miTask.icl;h=1274601adda4c686925055e523dece2accbbeaf8;hb=b55c1c423b6f00357b2ae2bbdd2abcf4456fd0cd;hp=a1f6e56a6ba56587fe0eeacb31db28e31fb098fa;hpb=3cac8340c7c822ecda3783286196c6bc4cdec66a;p=mTask.git diff --git a/miTask.icl b/miTask.icl index a1f6e56..1274601 100644 --- a/miTask.icl +++ b/miTask.icl @@ -61,6 +61,7 @@ mTaskTask ch = ( consumeNetworkStream (processSDSs sdsShares messageShare) ch ||- viewSharedInformation "channels" [ViewWith lens] ch ||- + viewSharedInformation "messages" [] messageShare ||- viewSh sdsShares ch ) >>* [OnAction ActionFinish (always shutDown)] ) @@ -104,9 +105,7 @@ mTaskTask ch = ) ) ||- viewSh xs ch - sdsShares = makeShares st - - (msgs, st) = toMessages 500 (toRealByteCode (unMain bc)) + (msgs, sdsShares) = makeBytecode 500 bc bc :: Main (ByteCode () Stmt) bc = sds \x=1 In sds \pinnetje=1 In {main = @@ -131,18 +130,16 @@ mTaskTask ch = digitalWrite D2 (lit True) ) )} -// bc :: Main (ByteCode Int Stmt) -// bc = sds \x=1 In {main = -// If (x ==. lit 3) -// (x =. lit 1) -// (x =. x +. lit 1) :. pub x} - -makeShares :: BCState -> [(Int, Shared Int)] -makeShares {sdss=[]} = [] -makeShares s=:{sdss=[(i,d):xs]} = - [(i, ms ("mTaskSDS-" +++ toString i) 1):makeShares {s & sdss=xs}] + +makeBytecode :: Int (Main (ByteCode () Stmt)) -> ([MTaskMSGSend], [(Int, Shared Int)]) +makeBytecode timeout bc +# (msgs, st) = toMessages timeout (toRealByteCode (unMain bc)) +# shares = map (\(i,d)->(i, sdsFocus (s i) (memoryStore (s i) (Just (dd d))))) st.sdss += (msgs, shares) where - ms name i = sdsFocus name (memoryStore name (Just i)) + s i = "mTaskSDS-" +++ toString i + dd [x,y] = (toInt x)*265+(toInt y) + sendMsg :: [MTaskMSGSend] (Shared ([MTaskMSGRecv],Bool,[MTaskMSGSend],Bool)) -> Task () sendMsg m ch = upd (\(r,rs,s,ss)->(r,rs,s ++ m,ss)) ch @! ()