00:08:25 so anyway 00:08:35 does anyone know why gitit always uses 1% of cpu idling? 00:08:41 seems likely a happstack 00:08:43 thing 00:10:32 mmm 00:10:40 huh, indeed. 00:10:44 it's irritating - clutters up my top 00:10:51 that's a bit odd. 00:11:10 can you write a report, say that i confirmed it, so someone hunts down what is going on. 00:11:23 i'm seeing 2% cpu. so something is waking up every second or such like. 00:11:26 of course I confirmed it, I would hardly be complaining otherwise 00:11:35 right, but it is good to have other users. 00:11:45 you use any plugins? 00:11:47 nope 00:11:56 vanilla gitit 00:12:16 ACTION is a little surprised, but eliminates one possible source of variance 00:14:43 wonder if we could check with another app 00:16:53 @hoogle listenON 00:16:53 Network listenOn :: PortID -> IO Socket 00:17:09 suspicious looking. wonder if it just loops 00:24:30 well, presumably at the base gitit/happstack sits in an accept loop 00:24:47 sleeping the main process until the kernel says data is ready on a watched socket 00:26:52 listen (MkSocket s _family _stype _protocol socketStatus) backlog = do modifyMVar_ socketStatus $ λ status → do if status ≠ Bound then ioError (userError ("listen: can't peform listen on socket in status " ++ s 00:26:57 how status)) else throwSocketErrorIfMinus1Retry "listen" (c_listen s (fromIntegral backlog)) >> return Listening 00:27:15 wonder what modifyMVar_ does, efficiency wise 00:27:23 this is all the way down in Network.Socket 00:36:15 dons: but if the process is really sleeping in modifyMVar, why would we see it in top? 00:43:54 dons: alright, I'm just emailing the gitit newgroup 00:43:58 if you have any input 00:44:27 it won't show up. 00:44:33 ? 00:44:34 i bet it is other threads in the system doing something 00:44:47 checking modify times on files or some such 00:44:51 rather than watching sockets 00:48:09 well, it could only be 'wiki' or 'dir' 00:49:12 wisince the final line of main is 00:49:13 simpleHTTP serverConf $ msum [ wiki conf' 00:49:16 , dir "_reloadTemplates" reloadTemplates 00:49:20 ] 00:50:18 but no, simpleHTTP' doesn't run the second argument until a response hits 00:50:34 gwern: hey, maybe try threadscope on gitit? 00:50:42 how does threadscope work? 00:50:47 you'll learn a new tool, and prob. get a good idea of what is running when gitit is supposed to be idle. 00:51:06 it attaches to the event log , you get the event log from the running app by launching it with a flag. 00:51:12 oh. might need 6.12... 00:51:18 profiling perhaps then. 00:53:43 doesn't go too hot with plugins 00:54:07 let's see how threadscope goes 00:55:40 you'll need to compile it all with ghc 6.12. is that possible with happstack? 00:56:00 why with 6.12? 00:56:08 threadscope seems to compile 00:56:50 to get event logging from the runtime. 00:57:02 oh 00:57:02 you need gitit running on the 6.12 runtime 00:57:16 that's even worse than recompiling gitit and editing my setup to run profiled :) 00:57:20 yes 00:57:24 (don't want to upgrade just yet) 00:57:26 but you get better info about threads. 00:58:33 and spend hours dealing with errors and issues in various places 01:03:04 right. 03:34:36 anybody know how to make HSX generate sane XML indentation? 03:43:26 quuxman: you just need to realize that it is already sane 03:44:31 somebody: well, actually I didn't mean XML. I'm using html4 03:44:32 whitespace in the cdata of XML is (often) significant (aka, meaningful), so you can't just stick random whitespace between the tags.. 03:44:43 somebody: yeah I know that's why it looks like that 03:44:50 somebody: but there's a flag to turn that on and off 03:44:55 in the XML spec 03:45:01 or at least the XHTML spec 03:45:36 but even so, it doesn't indent properly. It indents siblings 03:45:47 well, for the
 and