new :: IO Manager
new = do
    mgrIOCP      <- FFI.newIOCP
    mgrClock     <- getClock
    mgrWorkers   <- newWorkerList
    mgrWorkerMap <- newIORef IM.empty
    let mgr = Manager{..}
    _tid <- forkOSUnmasked $ loop mgr
    return mgr
new :: IO Manager
new = do
    mgrIOCP      <- FFI.newIOCP
    mgrClock     <- getClock
    mgrWorkers   <- newWorkerList
    mgrWorkerMap <- newIORef IM.empty
    let mgr = Manager{..}
    _tid <- forkOSUnmasked $ loop mgr
    return mgr
new = do
    mgrIOCP      <- FFI.newIOCP
    mgrClock     <- getClock
    mgrWorkers   <- newWorkerList
    mgrWorkerMap <- newIORef IM.empty
    let mgr = Manager{..}
    _tid <- forkOSUnmasked $ loop mgr
    return mgr