alsa-seq 0.6.0.2 → 0.6.0.3
raw patch · 2 files changed
+23/−16 lines, 2 filesdep ~array
Dependency ranges changed: array
Files
- alsa-seq.cabal +15/−10
- src/Sound/ALSA/Sequencer/Concurrent.hs +8/−6
alsa-seq.cabal view
@@ -1,5 +1,5 @@ Name: alsa-seq-Version: 0.6.0.2+Version: 0.6.0.3 Author: Henning Thielemann <alsa@henning-thielemann.de>, Dylan Simon <dylan@dylex.net>,@@ -30,6 +30,11 @@ type: darcs location: http://code.haskell.org/alsa/seq/ +Source-Repository this+ tag: 0.6.0.3+ type: darcs+ location: http://code.haskell.org/alsa/seq/+ Flag buildExamples description: Build example executables default: False@@ -43,7 +48,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array >=0.1 && <0.6, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -145,7 +150,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -185,7 +190,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -224,7 +229,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -263,7 +268,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -303,7 +308,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -343,7 +348,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -384,7 +389,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,@@ -425,7 +430,7 @@ alsa-core >=0.5 && <0.6, enumset >=0.0.3 && <0.1, transformers >=0.2 && <0.4,- array >=0.1 && <0.5,+ array, bytestring >=0.9 && <0.11, data-accessor >=0.2.2 && <0.3, utility-ht >=0.0.7 && <0.1,
src/Sound/ALSA/Sequencer/Concurrent.hs view
@@ -13,21 +13,20 @@ import qualified Sound.ALSA.Sequencer.Event as Event import Sound.ALSA.Exception (code, ) +import qualified Control.Exception as Exc+import qualified System.Posix.Poll as Poll+import qualified Data.EnumSet as EnumSet import Control.Concurrent (yield, threadWaitRead, threadWaitWrite, forkIO, killThread, ) import Control.Concurrent.MVar (newEmptyMVar, putMVar, takeMVar, )-import Control.Exception (catchJust, catch, )+import Control.Exception (catchJust, ) import Control.Monad (guard, when, ) import Data.Function (fix, ) import Data.Word (Word, ) import Foreign.C.Error (eINTR, ) import System.IO.Error (isFullError, ) import System.Posix.Types (Fd, )-import qualified System.Posix.Poll as Poll-import qualified Data.EnumSet as EnumSet -import Prelude hiding (catch, ) - data WaitFd = WaitRead Fd | WaitWrite Fd@@ -44,7 +43,10 @@ threadWaitPolls [p@(WaitWrite f)] = threadWaitWrite f >> return p threadWaitPolls l = do w <- newEmptyMVar- let poll1 p = catch (threadWaitPolls [p] >>= putMVar w . Right) (putMVar w . Left)+ let poll1 p =+ Exc.catch+ (threadWaitPolls [p] >>= putMVar w . Right)+ (putMVar w . Left) t <- mapM (forkIO . poll1) l r <- takeMVar w mapM_ killThread t