[Haskell-beginners] forkIO and signal handlers
Michael Litchard
michael at schmong.org
Fri Sep 9 21:54:21 CEST 2011
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
>>
>>
>
More information about the Beginners
mailing list