CurryInfo: cpns-3.0.0 / Network.CPNS.cpnsStart

definition: Info
 
cpnsStart :: IO ()
cpnsStart = catch startup
                  (\_ -> addLogLn "FAILURE occurred during startup!" >>
                         deleteStartupLockfile >>
                         return Nothing) >>=
             maybe (return ()) (cpnsServer [])
 where
   deleteStartupLockfile = do
     lockfile <- getStartupLockFile
     addLogLn $ "Removing startup lock file \"" ++ lockfile ++ "\"..."
     system $ "/bin/rm -f " ++ lockfile
     return ()

   startup = do
     addLogLn $ "Starting Curry Port Name Server on port " ++
                show cpnsSocket ++ "..."
     socket <- listenOn cpnsSocket
     deleteStartupLockfile
     pid <- getPID
     addLogLn $ "Curry Port Name Server is ready (PID: "++show pid++")."
     return (Just socket)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {() |-> _}
name: Info
 cpnsStart
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Prelude.IO ()
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term