packages feed

HFuse 0.2.3 → 0.2.4

raw patch · 3 files changed

+17/−12 lines, 3 filesnew-uploaderPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ System.Fuse: fuseRun :: String -> [String] -> Exception e => FuseOperations fh -> (e -> IO Errno) -> IO ()

Files

HFuse.cabal view
@@ -1,11 +1,11 @@ Name:                   HFuse-Version:                0.2.3+Version:                0.2.4 License:                BSD3 License-File:		LICENSE Author:                 Jeremy Bobbio Maintainer: 		Taru Karttunen <taruti@taruti.net> Synopsis:               HFuse is a binding for the Linux FUSE library.-Homepage:               http://code.haskell.org/hfuse+Homepage:               https://github.com/realdesktop/hfuse Category:               System Stability:              Experimental Cabal-Version:          >= 1.2
README view
@@ -1,9 +1,9 @@ Programs using HFuse should be compiled with -threaded.  HelloFS seems to work with:-* Linux 2.6.24-* The Glorious Glasgow Haskell Compilation System, version 6.8.2-* fuse-2.6+* Linux 2.6.39+* The Glorious Glasgow Haskell Compilation System, version 7.0.3+* fuse-2.8.5  BindFS (?) is known to have a lurking deadlock problem. 
System/Fuse.hsc view
@@ -29,6 +29,7 @@     , FuseOperations(..)     , defaultFuseOps     , fuseMain -- :: FuseOperations fh -> (Exception -> IO Errno) -> IO ()+    , fuseRun -- :: String -> [String] -> FuseOperations fh -> (Exception -> IO Errno) -> IO ()     , defaultExceptionHandler -- :: Exception -> IO Errno       -- * Operations datatypes     , FileStat(..)@@ -433,11 +434,9 @@                    }  -- Allocates a fuse_args struct to hold the commandline arguments.-withFuseArgs :: (Ptr CFuseArgs -> IO b) -> IO b-withFuseArgs f =-    do prog <- getProgName-       args <- getArgs-       let allArgs = (prog:args)+withFuseArgs :: String -> [String] -> (Ptr CFuseArgs -> IO b) -> IO b+withFuseArgs prog args f =+    do let allArgs = (prog:args)            argc = length allArgs        withMany withCString allArgs (\ cArgs ->            withArray cArgs $ (\ pArgv ->@@ -832,13 +831,19 @@ -- --   * calls FUSE event loop. fuseMain :: Exception e => FuseOperations fh -> (e -> IO Errno) -> IO ()-fuseMain ops handler =+fuseMain ops handler = do     -- this used to be implemented using libfuse's fuse_main. Doing this will fork()     -- from C behind the GHC runtime's back, which deadlocks in GHC 6.8.     -- Instead, we reimplement fuse_main in Haskell using the forkProcess and the     -- lower-level fuse_new/fuse_loop_mt API.+    prog <- getProgName+    args <- getArgs+    fuseRun prog args ops handler++fuseRun :: String -> [String] -> Exception e => FuseOperations fh -> (e -> IO Errno) -> IO ()+fuseRun prog args ops handler =     IO.catch-       (withFuseArgs (\pArgs ->+       (withFuseArgs prog args (\pArgs ->          do cmd <- fuseParseCommandLine pArgs             case cmd of               Nothing -> fail ""