« August 2009 | September 2009 Archives | October 2009 »

Tracking down reference counting bugs

The Server Framework uses reference counted data buffers and socket objects. These are passed around as part of the asynchronous I/O system in the framework and as they're placed in queues or passed from one thread to another their reference counts are adjusted so that they are automatically cleaned up when they're finished with; but not before. If you're writing a server or client using The Server Framework then you may need to manipulate these reference counts yourself; as with all reference counted objects, there are two simple rules: If you need to hold on to a reference to an object than…

Using old compilers

By an interesting coincidence I happened to be searching for a few new C++ blogs to follow and I also happened to have just updated this entry about Stan Lippman's VC6 rant (since I found a link to the original posting which had been deleted before I could comment on it back in 2005...). Anyway, back to the point, The Lone Coder asks "Why oh why do people insist on using compilers that are way out of date?". My answer is pretty much the same as back in 2005; clients often require that code builds with older compilers and that…

A week with Windows 7

I upgraded one of my build machines to Windows 7 almost a month ago now but I only managed to get around to doing my main developer machine at the start of this week. Apart from the fact that the Windows 7 in place upgrade failed on me, twice, and rolled back to Vista without leaving me with much information as to why it had failed (removing Compuware's DevPartner Studio did the trick), the upgrade went pretty smoothly. Having used the machine for a week now I can say that there's nothing that I'm complaining about (yet) and that in…

Latest release of licensed socket server code: 6.1

The latest release of The Server Framework is now available. This release includes the following changes. The following changes were made to the libraries. Admin Library - 6.1 We now suppress warning 4370, 'layout of class has changed from a previous version of the compiler due to better packing', in Warnings.h. New build configuration options. All of these are enabled by defining the option to 1 in Config.h and disabled by defining them to 0; the default state if you do not do anything in Config.h is shown for each option: JETBYTE_TRANSLATE_SEH_EXCEPTIONS - enabled by default. When enabled each thread that is…
The release notes for the 6.1 release, whilst complete, don't really highlight the key points of this release. These are as follows: Support for SSPI Negotiate (NTLM and Kerberos) servers and clients - You can now license code which allows you to implement high performance IO Completion based asynchronous servers and clients that support "Windows Authentication" for authentication and security of data transfer. Example clients and servers are available here The example servers which demonstrate how to use per server and per connection timers (as detailed here) are now available here. The JetByte Service Tools library has been completely rewritten…
Has anyone got anything to say about the relative merits of Parasoft Insure++ vs the BoundsChecker parts of the Microfocus DevPartner Studio product? I've used BoundsChecker for a long time, and it has plenty of faults but the fact that all support channels seem to have vanished during the transition of the product from Compuware to MicroFocus means that I'm now considering moving to something else. So far my impression of Insure++ isn't being helped by the fact that the sales person seems to require a 'land line' to contact me on to enable them to talk to me about…

Interesting Blog Posts on High Performance Servers

There are some interesting blog posts by Rick Vicik over on the Windows Server Performance Team Blog. Most interesting for me is part three of the three part series on "Designing Applications for High Performance". Whilst parts one and two cover some useful ideas they're pretty general. Part three really digs into the implementation of I/O completion ports and how new API calls can help improve performance and reduce locking within the APIs themselves. These two pieces of information were especially interesting to me: "While you don't need an event in the Overlapped structure when using Completion Ports because the…
« August 2009 | September 2009 Archives | October 2009 »

About this Archive

This page is an archive of entries from September 2009 listed from newest to oldest.

August 2009 is the previous archive.

October 2009 is the next archive.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing