workerCache :: IO WorkerCache
workerCache =
    do wc <- readIORef globalWorkerCache
       pending <- getPendingSignals
       when (sigUSR1 `inSignalSet` pending) $
            do dumpLog
               unblockSignals $ addSignal sigUSR1 emptySignalSet
               blockSignals $ addSignal sigUSR1 emptySignalSet
       return wc
workerCache :: IO WorkerCache
workerCache =
    do wc <- readIORef globalWorkerCache
       pending <- getPendingSignals
       when (sigUSR1 `inSignalSet` pending) $
            do dumpLog
               unblockSignals $ addSignal sigUSR1 emptySignalSet
               blockSignals $ addSignal sigUSR1 emptySignalSet
       return wc
workerCache =
    do wc <- readIORef globalWorkerCache
       pending <- getPendingSignals
       when (sigUSR1 `inSignalSet` pending) $
            do dumpLog
               unblockSignals $ addSignal sigUSR1 emptySignalSet
               blockSignals $ addSignal sigUSR1 emptySignalSet
       return wc