From 2fce3940b506a7671f622e872e049008df8ef4ad Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 20 Jul 2012 02:16:09 -0400 Subject: [PATCH] catch all errors --- Assistant/Threads/MountWatcher.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Assistant/Threads/MountWatcher.hs b/Assistant/Threads/MountWatcher.hs index a6c15540a6..1cf854d0aa 100644 --- a/Assistant/Threads/MountWatcher.hs +++ b/Assistant/Threads/MountWatcher.hs @@ -17,6 +17,7 @@ import Utility.ThreadScheduler import Utility.Mounts import Control.Concurrent +import qualified Control.Exception as E import qualified Data.Set as S #if WITH_DBUS @@ -38,7 +39,7 @@ mountWatcherThread st handle = #if WITH_DBUS dbusThread :: ThreadState -> DaemonStatusHandle -> IO () -dbusThread st handle = (go =<< connectSession) `catchIO` onerr +dbusThread st handle = E.catch (go =<< connectSession) onerr where go client = ifM (checkMountMonitor client) ( do @@ -56,6 +57,7 @@ dbusThread st handle = (go =<< connectSession) `catchIO` onerr warning "No known volume monitor available through dbus; falling back to mtab polling" pollinstead ) + onerr :: E.SomeException -> IO () onerr e = do runThreadState st $ warning $ "Failed to use dbus; falling back to mtab polling (" ++ show e ++ ")"