1
0
forked from GitHub/gf-core

gf -server: include list of loaded PGFs in version info

This commit is contained in:
hallgren
2014-05-12 13:45:36 +00:00
parent ca0c203877
commit 3c110cbe8d
3 changed files with 11 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
module Cache (Cache,newCache,flushCache,readCache,readCache') where
module Cache (Cache,newCache,flushCache,listCache,readCache,readCache') where
import Control.Concurrent.MVar
import Data.Map (Map)
@@ -22,6 +22,9 @@ flushCache :: Cache a -> IO ()
flushCache c = do modifyMVar_ (cacheObjects c) (const (return Map.empty))
performGC
listCache :: Cache a -> IO [FilePath]
listCache = fmap Map.keys . readMVar . cacheObjects
readCache :: Cache a -> FilePath -> IO a
readCache c file = snd `fmap` readCache' c file

View File

@@ -1,7 +1,7 @@
{-# LANGUAGE CPP #-}
module PGFService(cgiMain,cgiMain',getPath,
logFile,stderrToFile,
newPGFCache,flushPGFCache) where
newPGFCache,flushPGFCache,listPGFCache) where
import PGF (PGF)
import qualified PGF
@@ -57,11 +57,13 @@ newPGFCache = do pgfCache <- newCache PGF.readPGF
return (pgf,({-pc-}))
return (pgfCache,cCache)
flushPGFCache (c1,c2) = flushCache c1 >> flushCache c2
listPGFCache (c1,c2) = (,) # listCache c1 % listCache c2
#else
type Caches = (Cache PGF,())
newPGFCache = do pgfCache <- newCache PGF.readPGF
return (pgfCache,())
flushPGFCache (c1,_) = flushCache c1
listPGFCache (c1,_) = (,) # listCache c1 % return []
#endif
getPath =