[Haskell-beginners] forkIO and signal handlers

David McBride dmcbride at neondsl.com
Fri Sep 9 22:09:37 CEST 2011


Handler is not IO (), it is a handler.  Try this:

installHandler userDefinedSignal1 (Catch (forkIO (worldHandler world
jCount) >> return ())) Nothing

On Fri, Sep 9, 2011 at 3:54 PM, Michael Litchard <michael at schmong.org> wrote:
> forgot to paste in the error message, oops
>
> copy_take.lhs:48:51:
>    Couldn't match expected type `IO ()' with actual type `Handler'
>    In the second argument of `($)', namely
>      `Catch $ worldHandler world jCount'
>    In the second argument of `installHandler', namely
>      `(forkIO $ Catch $ worldHandler world jCount)'
>    In a stmt of a 'do' expression:
>        installHandler
>          userDefinedSignal1
>          (forkIO $ Catch $ worldHandler world jCount)
>          Nothing
> Failed, modules loaded:
>
> On Fri, Sep 9, 2011 at 12:53 PM, Michael Litchard <michael at schmong.org> wrote:
>> Here's the error message. The problem is clear, not sure what to do
>> about it. My broken code should show my intent though.
>>
>>> main :: IO ()
>>> main = do
>>>     let world = (newEmptyTMVar :: ProcessState)
>>>     let jCount = (newEmptyTMVar :: JobCount)
>>>     installHandler userDefinedSignal1 (forkIO $ Catch $ worldHandler world jCount) Nothing
>>>     sequence_ $ repeat $ worldCheck
>>
>> I'd like to fork in Main. Right now I'm forking in worldHandler. If
>> that's what I have to do, then I'll just move on. But I'd like to keep
>> the forkIO call in Main if possible.
>>
>>
>> On Fri, Sep 9, 2011 at 12:46 PM, Brandon Allbery <allbery.b at gmail.com> wrote:
>>> On Fri, Sep 9, 2011 at 15:35, Michael Litchard <michael at schmong.org> wrote:
>>>>
>>>> Thanks for the reply. The problem isn't signal handling, nor is it
>>>> using forkIO. It's using both of them together.
>>>
>>> I think you'll have to provide an example of what you're trying to do and
>>> the error message you get.
>>> --
>>> brandon s allbery                                      allbery.b at gmail.com
>>> wandering unix systems administrator (available)     (412) 475-9364 vm/sms
>>>
>>>
>>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>



More information about the Beginners mailing list