import System.Exit
import System.IO.Unsafe
import System.Posix.Signals
import Control.Concurrent
termReceived = unsafePerformIO (newMVar False)
handleTERM :: IO ()
handleTERM = do
swapMVar termReceived True
return ()
wrapup :: IO ()
wrapup = do
-- Shut down cleanly
putStrLn "shutting down"
return ()
doWork :: IO ()
doWork = do
-- For now, just pretend we're doing something
putStrLn "working"
threadDelay 20000
loop :: IO ()
loop = do
timeToStop <- readMVar termReceived
if timeToStop
then wrapup
else do
doWork
loop
main = do
installHandler sigTERM (Catch handleTERM) Nothing
loop
12 November 2010
Haskell daemon
Seo sampla daemon Haskell:
Subscribe to:
Post Comments (Atom)
3 comments:
Dea-chód atá scríofa agat. Cad a dhéanfaidh tú leí?
Fresin seans go ag baint mí-úsáid as "do". Ar iarradh tú é a scríobh ón "suicra comhréire"?
An bhfuil fhois agat go bhfuil focal nua sa theanga se thoradh ar Haskell? D'iarras ar an gcoiste téarmaíochta an bhfuil focal ann ar "functor" ach ní raibh. Thug mé an moladh "feidhmeoir" dóibh agus anois sin é!
Focal nua ó Haskell... sin é go hiontach!
Ghreamaigh mé an cód sa bhlog seo, agus
ní thaispeánadh spásanna ar bith sa chód. Ach chuir mé clib "pre" leis, agus tá sé inléite anois.
Tá mé ag déanamh taighde chun céim mháistir a fháil (agus ansin, céim dhochtúra, le cúnamh Dé). Ábhar mo chuid taighde ná "intleacht shaorga" (artificial intelligence). Tá mé ag cur na fionnachtana nua ó thaighde intinne le "líonra néarach" (neural networks) agus le "clárú géiniteach" (genetic programming).
Tá mé ag scríobh clár le créatúir saorga (alife). Tá siad "evolving" fadhb ginearálta a réiteach. An-craic ar fad.
Agus rinne mé dearmad ar rud a rá: Scríobh mé an daemon sin mar "driver" don cruinne saorga a bhfuil na créatúir saorga ina gcónaí air.
Tá mé fiosrach... mura mhiste leat, inis dom cé thú féin? Kevin S, b'fhéidir?
Post a Comment