I want to learn how to use FFI with Win32, so I'm looking through the GHC source code. I encountered the function
terminateProcess :: ProcessHandle -> IO ()
terminateProcess ph = do
withProcessHandle_ ph $ \p_ ->
case p_ of
ClosedHandle _ -> return p_
OpenHandle h -> do
throwErrnoIfMinus1_ "terminateProcess" $ c_terminateProcess h
return p_
which uses withProcessHandle_. What does it do?
Thanks
-John