Alo Sarv
lead developer

Donate via

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary

Friday, December 17, 2004

Deploying new EHS

Well, the transaction to new event system went rather smoothly, took few hours to convert the old code to use the new system, but no major problems occoured ... except for one.

For some reason, some of the submitted events never reached the handlers. After some tracking, I found out that multiple event tables for same source types existed at same time, and events were posted to one instance, but handlers were registred to other instance. Further investigation showed that every source file that instances the EventTable template class Singleton got a separate copy of the table, instead of referencing to the same copy. At first it made sense, since what we'r dealing with here are still templates, and it would make sense to get a local copy (altough when I wrote the thing I thought linker should take care of that). So there I am, rather pissed at the situation, considering possible solutions, and figured I'll test the engine on linux/gcc just to see if it behaves the same way ...

And what do I discover? That the engine works exactly as intended on linux/gcc - events are submitted to right tables and correctly handled (e.g. handlers also go to right tables). Now I'm REALLY pissed at MSVC - first it's crap editor with no syntax highlighting, then its the bloated MSVC environment ... and now this. *doh*

So anyway, I commited the new system to CVS for testing, it's not heavily tested on linux, but generally seems to be working. I'm currently researching possibilities of working around the MSVC issue, with one alternative being dropping MSVC support completely, if the code runs ok on win32/gcc - I'm REALLY not motivated to work in a crappy environment with a crappy compiler for ~5% performance boost that MSVC gives over mingw-gcc.

Madcat, ZzZz

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?