Asynchronous Events

Latest release of The Server Framework: 6.9.4

Version 6.9.4 of The Server Framework was released today. This release includes changes to support Visual Studio 2019 (16.4), some new functionality and a bug fix to our OpenSSL ALPN handling code. As always, see the release notes here, for full details of all changes. Bug fixes: Bug fix to JetByteTools::OpenSSL::CAsyncConnector. We were dealing with ALPN callbacks incorrectly and this could cause an access violation. Changes: Added a debug log message to alert you to the fact that a JetByteTools::IO::CAsyncFileLog instance has had OnPendingWriteLimit() called.

Latest release of The Server Framework: 6.9.3

Version 6.9.3 of The Server Framework was released today. This release includes changes to support Visual Studio 2019 (16.3), lots of code changes to migrate towards “modern C++” idioms, issues raised by Resharper++ and changes in include path separators and file name case to support compilation on Linux. We have also removed some code that was previously deprecated and dropped support for Visual Studio 2013. There are no bug fixes or intentional functionality changes to this release but a LOT of files have been touched; we decided to put this release out so that functionality and bug fix changes can be more easily seen going forwards.

Latest release of The Server Framework: 6.9.2

Version 6.9.2 of The Server Framework was released today. This release includes changes to support Visual Studio 2017 (15.9), Visual Studio 2019 (16.2), design changes to the PerfMon tools library to improve performance and some bug fixes. As always, see the release notes here, for full details of all changes. Bug fixes: Bug fix to JetByteTools::Win32::TimeChangeNotificationMonitor and JetByteTools::Win32::CSystemShutdownMonitor so that we don’t truncate the pointer passed SetWindowLongPtr(). Truncation was rarely occurring to just the top bits.

Latest release of The Server Framework: 6.9.1

Version 6.9.1 of The Server Framework was released today. This release includes changes to support Visual Studio 2017 15.5 and some bug fixes. It’s required if you’re using Visual Studio 2017. As always, see the release notes here, for full details of all changes. Bug fixes: Bug fix to JetByteTools::Win32::TimeChangeNotificationMonitor so that it doesn’t leak window timer handles. Note the leak was, at worst, one handle per object lifetime. Bug fix to JetByteTools::Win32::TZeroInitialiseExpandableBuffer for when it’s instantiated with non-POD types.

Latest release of The Server Framework: 6.9

Version 6.9 of The Server Framework was released today. This release includes lots of code change due to: the removal of support for Visual Studio 2012 and the results of lots of static analysis. As always, see the release notes here, for full details of all changes. Bug fixes: Bug fix to JetByteTools::Win32::TAddressOrderedMultiLock::Unlock() which was not setting the ’locked’ flag correctly and so could lead to locks being unlocked multiple times.

Latest release of The Server Framework: 6.8

Version 6.8 of The Server Framework was released today. This release includes important bug fixes. It also includes lots of code change due to: the removal of support for Visual Studio 2010, adding support for Visual Studio 2017 and the results of lots of static analysis. This release is essential for users of Release 6.7. As always, see the release notes here, for full details of all changes. Bug fixes:

Bug in multi-buffer writes in 6.7

A bug has been discovered in Release 6.7 in the code that deals with TCP socket writes that involve more than a single buffer. These ‘multi-buffer writes’ are writes that involves either a buffer chain or a block of data passed as a pointer and a length where the length exceeds the size of the buffer allocator that the connection is using. The bug prevents the ‘multi-buffer write’ from being executed as a single atomic write at the network layer and so can cause corruption of a TCP data stream if multiple sockets are writing to the same connection concurrently.

Supporting Visual Studio 2015 Update 3

Visual Studio Update 3 adds some new warnings for precompiled header generation. One of these, C4598, will prevent precompiled header builds of framework code due to our warnings as errors policy. A fix for this issue is to add the new warning to the list of disabled warnings in the project file. The easiest way to do this is to do a search and replace across your source tree for *.

Latest release of The Server Framework: 6.7

Version 6.7 of The Server Framework was released today. This release is mainly a code simplification release which removes support for legacy compilers and operating systems. See here for more details. However, there are some breaking changes where smart buffers have replaced buffer references and this causes function signature changes. In addition there has been considerable churn in the Streaming Media Option Pack with knock on changes in the HTTP library code which needed to be made more complete to deal with serving HLS streams.

6.7 - Potentially faster code, in some circumstances...

I hinted at the end of the last post that the 6.7 release might increase performance a little. Well, whilst the bulk of the changes in 6.7 are purely code cleaning and the removal of legacy support there is a fairly major functional change as well. In most situations references or pointers to I/O buffers have been replaced with smart pointers. This change may cause some issues during an upgrade as you need to change some function signatures from IBuffer refs to CSmartBuffers.