development

Inspired by Code Monkey

April 23, 2008 16:36:07.513

I was driving to my daughter's school, listening to my iPod, set to shuffle my music, and "Code Monkey" came up. Imagine my surprise when I had a sudden epiphany on a longstanding bug in the blog server.

I had noticed that whenever I pushed a new post up, if I wanted the category specific feed to update, I needed to manually force that to happen. This was irritating, but I hadn't figured out why it was happening - the order (update the cache, then update the feed) looked right. What I hadn't done was delve into the process of cache updating. Here's what that looked like:


	...

	self categoryCache add: category.
	[self cache cacheForCategorySearch: aBlog] 
		forkAt: Processor userBackgroundPriority.

	...

You might see the problem - the cache update code is forked, and at a lower priority than the active thread. Given the Smalltalk Process Model's operation, that thread is guaranteed to not run before the main thread does - which meant that the category specific feed was getting dropped before the cache got updated. I just made sure that the feed gets dropped within that fork, after the cache update - which solves the problem.

So what does it say about me that I came up with this during that song :)

Technorati Tags:

Comments

[] April 24, 2008 1:42:49.554

Rats... now I had to play that song for the first time in months...

 

"... his code not function or elegant ..."

 

Did you see the WoW video for this? Hilarious.

 Share Tweet This
-->