diff options
Diffstat (limited to 'CGroup.hs')
-rw-r--r-- | CGroup.hs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/CGroup.hs b/CGroup.hs deleted file mode 100644 index 11b54cd..0000000 --- a/CGroup.hs +++ /dev/null @@ -1,53 +0,0 @@ --- | --- Module: CGroup --- Copyright: (c) 2014 Tomislav Viljetić --- License: BSD3 --- Maintainer: Tomislav Viljetić <tomislav@viljetic.de> --- --- Basic cgroup virtual filesystem operations. --- - -module CGroup - ( module CGroup.Types - , createCGroup - , classifyTask - , listTasks - ) where - -import CGroup.Types -import Control.Applicative -import Data.Attoparsec.ByteString.Char8 -import Data.Set (Set) -import qualified Data.Set as Set -import System.Directory (createDirectory) -import System.FilePath ((</>)) -import System.IO.Streams.Attoparsec (parseFromStream) -import System.IO.Streams.File (withFileAsInput) - - --- | Create a new cgroup. -createCGroup :: CGroup -> IO () -createCGroup = - createDirectory . cgroupPath - - --- | Places a task into a cgroup. -classifyTask :: ProcessID -> CGroup -> IO () -classifyTask pid g = - writeFile (tasksFile g) (show pid) - - --- | Retrieve the tasks of a cgroup. -listTasks :: CGroup -> IO (Set ProcessID) -listTasks g = - withFileAsInput (tasksFile g) $ parseFromStream tasksParser - - -tasksFile :: CGroup -> FilePath -tasksFile = - (</> "tasks") . cgroupPath - - -tasksParser :: Parser (Set ProcessID) -tasksParser = - Set.fromList <$> many' (decimal <* endOfLine) <* endOfInput <?> "tasks" |