Latest release of The Server Framework: 6.5.8
Version 6.5.8 of The Server Framework was released today.
This release contains one bug fix for a bug which has been present in The Server Framework since at least release 5.0 and one change to work around a bug in Windows 8 and Server 2012.
If you plan to use AcceptEx()
on Windows 8 or Server 2012 or you have connections which run for a long period of time, use sequenced sockets and issue more than 2,147,483,647 writes on a socket then you need this release.
This release includes the following, see the release notes, here, for full details of all changes.
- Changes to how
CStreamSocketServerEx
issuesAcceptEx()
calls to ensure that these calls are always made from an I/O thread. This is to help reduce the likely impact of the bug in Windows 8/Server 2012 with regard to the delay ofAcceptEx()
completions when the issuing thread is blocked in a synchronousReadFile()
. - Bug fix to sequence writes, see here for more details. Due to a type size mismatch between
IBuffer::SequenceNumber
and the sequence numbers generated byCSequencedStreamSocket::SequenceData
a write stall could occur when the sequence number that was being generated (asigned long
) wrapped as the “next” sequence number inCInOrderBufferList
was aIBuffer::SequenceNumber
which was asize_t
which wrapped far later. The buffer list would wait for buffers with sequence numbers which could never be generated.