I've been distracted a lot the past two days, probably as a side-effect of not having meditated since Tuesday. (I'm beginning to understand why it's important to do it every day ... and I'm starting to wonder how people who don't do it can possibly get anything done. ;P)

This amuses me greatly. Because you know, in real life, I have a halo. And claws. Can't you see them? ...No? Damn.

(If you're as bored as I am, you can make your own South Park character here.)

>>> Geeky Stuff -- MetaFS Update

Monday and Tuesday saw a lot of MetaFS work getting done ... one of my major TODO items for the next release was rewriting the plugin system, and that is mostly done (and committed) now. The new system is sorely in need of documentation, however, and there are one or two quirks with the event system I want to clear up.

Now, before you yell at me for not reusing components (e.g. Boost signals, or libsigc++ or something similar), I should point out that none of these libraries are thread-safe! This is just disgusting. I mean, why aren't they? Many modern programming systems make use of threads nowadays, so in my mind, there's really no excuse for libraries NOT to be thread-safe.

So I ended up having to reinvent the wheel, which saddens me. I really hope that Boost will make their signals thread-safe before too long (because I'm already using their threading library for mutexes and the like). I think it's silly that I have to maintain a hand-grown event dispatch system for something as simple as passing filesystem events to plugins. Any of the signals libraries would be more than adequate for this task, if only they were thread-safe. ::sigh::