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. - Bug fix to
JetByteTools::Win32::CEventOwner
to correctly handle the ’nothing’ flag. - Bug fix to
JetByteTools::IO::CBuffer::DuplicateBuffer()
so that it allocates a buffer of suitable size when a ‘custom sized buffer’ is being duplicated. - Bug fix to
JetByteTools::IO::CBufferAllocator::InternalAllocateCustomSizedBuffer()
so that it correctly callsOnBufferAllocated()
on the monitoring interface.
Breaking changes:
- Dropped support for Visual Studio 2012.
- Deprecated Hixie76 WebSockets,
JetByteTools::Win32::CRegistryConfiguration
, some methods onJetByteTools::IO::CBufferChain
andJetByteTools::IO::CBufferProcessor
. - Removed
JetByteTools::Win32::ICollectableThreadPool
,JetByteTools::Win32::CThreadPoolCollection
,JetByteTools::Win32::TLinkedClass
,JetByteTools::Win32::TSingleton
,JetByteTools::IO::CBufferList
,JetByteTools::IO::CInOrderBufferList
,JetByteTools::IO::CNonPooledBuffer
,JetByteTools::IO::CSequentialBufferList
,JetByteTools::IO::CSmartBufferList
,JetByteTools::IO::CLockFreeBuffer
andJetByteTools::IO::CLockFreeBufferAllocator
. - Removed the concept of “Multi buffer handles” and
JetByteTools::IO::IAllocateMultiBufferHandles
,JetByteTools::IO::CMultiBufferHandle
andJetByteTools::IO::CMultiBufferHandleAllocator
. - Changes to
JetByteTools::Win32::IMonitorThreadPool
. BothJetByteTools::Win32::IMonitorThreadPool::OnThreadPoolProcessingStarted()
andJetByteTools::Win32::IMonitorThreadPool::OnThreadPoolProcessingStopped()
have a new parameter passed to themdataAvailable
abool
which is used with the functionality that was added in 6.6.5 wherebyJetByteTools::Win32::IIOCPWorkerThreadCallback::ProcessEx()
can return true to causeJetByteTools::Win32::IIOCPWorkerThreadCallback::NoItemsToProcess()
to be called when the queue is empty. The addition of thisbool
allows monitoring code to differentiate between calls that result in processing and calls that do not. This is especially important if you are monitoring the number of items in the queue by tracking them as they go in and when their processing begins. This change results in corresponding changes to the following classes:JetByteTools::Win32::CNullThreadPoolMonitor
,JetByteTools::Win32::IManageThreadPoolThreads
,JetByteTools::Win32::CThreadPool
andJetByteTools::Win32::CThreadPoolEx
. - Changes to
JetByteTools::IO::IAllocateBuffer
,JetByteTools::IO::IAllocateBufferHandles
,JetByteTools::IO::IAllocateBuffers
,JetByteTools::IO::IManageBufferHandleLifeCycle
,JetByteTools::IO::IManageBufferLifeCycle
,JetByteTools::IO::IPoolBuffers
andJetByteTools::IO::IBuffer
all changed to returnJetByteTools::IO::CSmartBuffer
rather than raw pointers. - Methods on
JetByteTools::IO::IBufferChain
andJetByteTools::IO::IUnsortedBufferChain
that do not takeJetByteTools::IO::CSmartBuffer
have been deprecated. Some additional methods have also been removed where alternate functionality is available. UseDEPRECATE_BUFFER_CHAIN_METHODS
to control if these methods are still available. - Methods on
JetByteTools::IO::IBufferProcessor
that do not takeJetByteTools::IO::CSmartBuffer
have been deprecated. UseDEPRECATE_BUFFER_PROCESSOR_METHODS
to control if these methods are still available.