úÎ'$non-portable (uses FFI) experimentalmichael@snoyman.com& FHandle a single CGI request, or FastCGI requests in an infinite loop. @ This function only returns normally if it was a CGI request. & This lets you use the same program E as either a FastCGI or CGI program, depending on what the server  treats it as. KHandle a single FastCGI or CGI request. This lets you use the same program E as either a FastCGI or CGI program, depending on what the server  treats it as. #True if it was a FastCGI request,  False if CGI. -Handle FastCGI requests in an infinite loop. !Handle a single FastCGI request. Like Network.CGI.runCGI!, but uses the FastCGI interface % and forks off a new thread (using ) for every request. "Max number of concurrent threads. How to fork a request. "Max number of concurrent threads.  !=Data.ByteString.Lazy.hGetContentsN generalized to arbitrary  reading functions. "#$1Split a list at the first occurence of a marker. < Do not include the marker in any of the resulting lists. 8 If the marker does not occur in the list, the entire $ input with be in the first list. %&'      !"#$%&'()*+hack-handler-fastcgi-0.2.0Hack.Handler.FastCGIrunFastCGIorCGIrunOneFastCGIorCGI runFastCGI runOneFastCGIrunFastCGIConcurrentrunFastCGIConcurrent' fcgx_finish_r fcgx_accept_rfcgx_initrequest fcgx_init fcgx_finish fcgx_accept fcgx_putStr fcgx_getStr fcgx_isCGI FCGX_RequestEnviron StreamPtr FCGX_Stream oneRequest handleRequestbaseControl.ConcurrentforkOS oneRequestMT acceptRequest finishRequestpeekInpeekOut_peekErrpeekEnvpsPutStrfcgxPutCStringLensRead fcgxGetBufbuildByteString testReturnenvironToTablesplitBylogMutexlog