I've been meaning to build STLPort for Visual Studio 2008 for some time now but as the STL support that ships with Visual Studio has been improved the urgency to be able to use an alternative has reduced. Unfortunately STLPort 5.1.5 doesn't build for VS2008 out of the box so it wasn't simply a case of downloading it and building it. Anyway, I asked a question about it on StackOverflow and got an answer which linked to a blog posting from someone who had hacked the VC8 build to work with VC9. Fixing the build properly isn't much harder than…
I'm currently working on an SChannel version of the asynchronous SSL connector code that we use to provide SSL support in The Server Framework. This will eventually be an alternative to the existing OpenSSL support that we currently provide and should prove useful for people who want a tighter integration with Microsoft's Certificate Stores than our current OpenSSL support provides. In many ways the SChannel version of the code is more complex to implement than the OpenSSL version as the OpenSSL SSL_CTX context object deals with data accumulation and record splitting internally; you just push bytes into it and it eventually pushes…
As of release 5.2.4, which is due for release in December, we will no longer support Visual Studio 6 builds of The Server Framework. I've recently had to deal with some weird multi-threaded problems for a client and upgrading them from Visual Studio 6 to Visual Studio 2005 seemed to remove several STL related issues. I then did some research and decided that it simply wasn't worth supporting the old compiler any longer if the first thing that I'd do if a client had problems would be to recommend they upgrade the compiler... I've been using Visual Studio 6 since it came…
I've been compiling with /W4 for some time now. I didn't realise that this wasn't the best you could get. There are some warnings which are not enabled by default and therefore aren't included in /W4. To enable these you need to specify /Wall. The list for Visual Studio 2008 is here. Obviously there are some warnings that I don't find that useful, but these can either be disabled as and where I need to with #pragma warning or globally in my 'Warnings.h' file... Thanks to Maciej Sinilo for the heads up on this.…
I had reason to run my deadlock detection tool on a server built with an old version of The Server Framework as I needed to make changes to the server's locking strategy and I wanted to make sure that I didn't cause any lock inversions. The tool worked well and I tweaked it a little more to make it run faster (considerably faster actually!) and report better... The speed increase was pretty dramatic and consisted of adding a new option to the tool to prevent it from monitoring lock operations for locks that we have never seen created. This excludes all of…