You might also be interested in the release notes for the libraries that this one is built on:
-
Admin
-
C++ Tools (this was a separate library prior to version 6.0 at which point it was merged with the Win32 Tools Library
Version 6.0
-
The C++Tools and RegistryTools libraries have been merged with this library. All code that used to be in these libraries and their associated namespaces are now in the
JetByteTools::Win32 namespace.
-
Breaking Changes to how we share a pool of critical sections; see below and see here: http://www.lenholgate.com/archives/000825.html for more details.
-
Added support for JetByteTools::Win32::ICriticalSection::TryEnter().
-
Breaking Change to the JetByteTools::Win32::ToString() functions in Utils.h. These have all been moved into ToString.h, though Utils.h still provides access. We have also changed how we convert numeric types to strings. Prior to this release we used
std::strstream and templates and streamed the type into a string. However this requires the acquisition of a process wide lock (for accessing locales and facets) in some versions of STL which is less than ideal for multi-threaded use. From this release we default to using a custom sprintf based system to convert from numbers to strings. We also decided to change how 0 is represented in JetByteTools::Win32::ToHexString(), it's converted to 0x0 in the new code whereas it was converted to 0 in the old. JetByteTools::Win32::ToHexString() was also enhanced to allow for the user to decide if they want upper or lower case hex digits and we added JetByteTools::Win32::PointerToString() which gives a consistent represenation of pointers across 32bit and 64bit operating systems (always representing pointers as 64bit hex values). If you define JETBYTE_USE_TEMPLATE_TO_STRING as 1 in your Admin\Config.h file then you will revert to the pre version 6.0 behaviour and functionality using std::strstream. Please note that this old code is likely to be deprecated in a future release and then removed.
-
JetByteTools::Win32::CTimeChangeNotificationMonitor now compiles on versions of the compiler with headers that don't include a definition of
USER_TIMER_MAXIMUM.
-
Added
/Zm200 to the Visual Studio .Net (2002) project file as it seems to need more space for precompiled headers when compiling with STLPort. Note that you can remove this if you do not need STLPort support
Version 5.2.5
Version 5.2.4
Version 5.2.3
-
Some whitespace changes to remove incorrect tabs.
-
Added JetByteTools::Win32::ICollectableThreadPool and JetByteTools::Win32::CThreadPoolCollection which allow you to dispatch items to a named thread pool to facilitate multiple thread pools for different types of work item.
-
JetByteTools::Win32::CThreadPool::WaitForShutdownToComplete() now returns a
bool which is true if threads were terminated forcibly rather than being allowed to shutdown cleanly.
-
Added JetByteTools::Win32::CThreadPool::DisposeOfQueuedItems and JetByteTools::Win32::IThreadPoolWorkerThreadFactory::DisposeOfQueuedItemsAfterShutdown() which work together to allow you to process all work items that were held in a thread pool's queue after the pool has been shutdown. This should be used to release resources used by items that were placed into the queue but that will now never be processed.
-
Corrected the data type used for JetByteTools::Win32::CIOCompletionPort timeouts.
-
Added JetByteTools::Win32::CThread::StartWithPriority(), JetByteTools::Win32::CThread::EnableThreadPriorityBoost(), JetByteTools::Win32::CThread::DisableThreadPriorityBoost(), JetByteTools::Win32::CThread::ThreadPriorityBoostEnabled(), JetByteTools::Win32::CThread::SetThreadPriority() and JetByteTools::Win32::CThread::GetThreadPriority().
-
Added JetByteTools::Win32::CSmartStatupInfo which takes ownership of any input or output handles supplied to it or creates the files and takes ownership of the handles if given file names.
-
Added JetByteTools::Win32::CMultipleFileDeleter which is a bit like JetByteTools::Win32::CFileDeleter but for multiple files...
-
Added JetByteTools::Win32::CJob, JetByteTools::Win32::CJobEventManager, JetByteTools::Win32::IMonitorJobs, JetByteTools::Win32::IManageJobEvents, JetByteTools::Win32::IHandleJobEvents, JetByteTools::Win32::IAssignProcessesToJobs and JetByteTools::Win32::CNullJobMonitor which, together, allow you to manipulate Windows Job Objects.
-
Added JetByteTools::Win32::CCallbackTimerQueueEx which uses JetByteTools::Win32::IProvideTickCount64 as its time source. See here: http://www.lenholgate.com/archives/000773.html for more details.
-
Changed the implementation of JetByteTools::Win32::CCallbackTimerQueue to the one that is detailed here: http://www.lenholgate.com/archives/000773.html.
-
Changed JetByteTools::Win32::CThreadedCallbackTimerQueue so that you can select which underlying timer queue implementation it uses, or provide a custom one of your own, and so that you can request that it dispatches timers without holding any internal locks. Note that the default behaviour is to hold the internal lock and this behaviour is backwards compatible with the previous releases. However, in certain designs, this makes it easy for you to deadlock. If you have a lock and you hold it whilst calling into any of the timer queue functions, and you try to acquire your lock when the timer queue calls into you then you will deadlock. Not holding the internal lock during timer dispatch means that you can't deadlock when using the timer queue but the dispatch code is possibly slightly slower. This may be important to you in certain situations so we currently provide the choice. The changes are detailed here: http://www.lenholgate.com/archives/000795.html
-
Added JetByteTools::Win32::CThreadedCallbackTimerQueue::SetThreadName() which allows you to change the name of the timer queue thread. This name is displayed in the Visual Studio Debugger's thread window. The constructor now sets the name of this thread to
"TimerQueue" by default.
-
Added JetByteTools::Win32::CThreadPool::SetThreadName() which allows you to change the name of the worker threads that are managed by the pool. The constructor now sets the name of these threads to
"ThreadPool" by default.
-
Added JetByteTools::Win32::CThreadPool::SetDispatchThreadName() which allows you to change the name of the dispatch thread that is used by the pool. The constructor now sets the name of this thread to
"ThreadPoolDispatch" by default. Note that this must be called before calling JetByteTools::Win32::CThreadPool::Start() for it to have an effect.
-
Added JetByteTools::Win32::CThreadPool::SetThreadName() which allows you to change the name of the worker threads that are managed by the pool. The constructor now sets the name of these threads to
"ThreadPool" by default. Note that this must be called before calling JetByteTools::Win32::CThreadPool::Start() for it to have an effect.
-
JetByteTools::Win32::CThreadPool::WorkerThread::Run() now catches exceptions of type JetByteTools::Win32::CSEHException that leak from JetByteTools::Win32::IIOCPWorkerThreadCallback::Process() and tries to shut the worker thread down cleanly; it might work in some cases.
Version 5.2.2
-
The first release to be tested with BoundsChecker, hence the slew of resource leak fixes.
-
Fixed a bug in JetByteTools::Win32::IsAllDigits(), it now actually works, before it always returned true.
-
Fixed memory leak in JetByteTools::Win32::GetCurrentDirectory(). We were using std::auto_ptr to attempt to delete an array of memory and we need delete[] rather than delete. Now use a string for the buffer.
-
Only include JetByteTools::Win32::GetSystemWow64Directory() if the underlying OS supports it. Otherwise we throw an exception.
-
Fixed a memory leak in JetByteTools::Win32::GetFileVersion(). Once again we were using std::auto_ptr for an array.
-
Added JetByteTools::Win32::CopyFile().
-
Added JetByteTools::Win32::CreateGUIDAsString().
-
Changed JetByteTools::Win32::FileExists(), JetByteTools::Win32::LoadFileAsUnicodeString(), JetByteTools::Win32::LoadFileAsStringA() to open the file with FILE_SHARE_READ access.
-
Fixed a shutdown race condition in JetByteTools::Win32::CThreadPool which could have caused a thread to callback into the pool after the pool had been destroyed.
-
Added JetByteTools::Win32::CThreadedCallbackTimerQueue::GetMaximumTimeout() and JetByteTools::Win32::CCallbackTimerQueue::GetMaximumTimeout().
-
Changed JetByteTools::Win32::CThreadedCallbackTimerQueue::GetNextTimeout() and JetByteTools::Win32::CCallbackTimerQueue::GetNextTimeout(), they are now const.
-
Fixed the bug in JetByteTools::Win32::CCallbackTimerQueue that is detailed here: http://www.lenholgate.com/archives/000771.html
-
Added several methods to JetByteTools::Win32::CSystemTime. More ways to construct and more ways to access the resulting date/time.
-
Added JetByteTools::Win32::CSmartHandle::GetHandle().
-
Fixed a bug in JetByteTools::Win32::CSmartHandle::~CSmartHandle() which could allow the destructor to leak an exception if the close of the handle failed.
-
Changed JetByteTools::Win32::CSimpleNamedPipeServer and JetByteTools::Win32::CSimpleNamedPipeClient to use JetByteTools::Win32::CSmartHandle during construction to remove any chance of resource leaks.
-
Added JetByteTools::Win32::CCriticalSection::SetSpinCount().
-
Added A new constructor to JetByteTools::Win32::CSharedCriticalSection to enable you to specify a spin count for the critical sections.
-
Changed JetByteTools::Win32::CSemaphore so that it derives from JetByteTools::Win32::IWaitable.
-
Fixed a memory leak in JetByteTools::Win32::CSecurityDescriptorAllowAll().
-
Added optional boolean inheritHandles to JetByteTools::Win32::CSecurityAttributes. This defaults to false which gives the same results as before the change.
-
Added JetByteTools::Win32::CProcessToken::Enabler and JetByteTools::Win32::CProcessToken::OptionalEnabler classes for enabling privileges in a RAII manner.
-
Added JetByteTools::Win32::CProcessToken::IsUserAnAdmin(), JetByteTools::Win32::CProcessToken::EnablePrivilegeIfPossible(), JetByteTools::Win32::CProcessToken::DisablePrivilegeIfPossible() and JetByteTools::Win32::CProcessToken::RemovePrivilegeIfPossible().
-
Added some new constructor arguments to JetByteTools::Win32::CProcess so that you can specify the flags and whether to inhreit handles or not. Also added the following methods: JetByteTools::Win32::CProcess::GetHandle(), JetByteTools::Win32::CProcess::DetatchProcess(), JetByteTools::Win32::CProcess::ResumeProcess() and JetByteTools::Win32::CProcess::GetExitCode().
-
Added validation to the constructors of JetByteTools::Win32::CKernelObjectNameImpl to ensure that we never create a name that is too long.
-
Fixed a bug with JetByteTools::Win32::CEnvironmentBlock. We weren't adding a terminating null to an empty environment block.
-
Added JetByteTools::Win32::CDirectoryChangeMonitor.
-
Fixed a memory allocation/deallocation mismatch in JetByteTools::Win32::CCommandLine where we were using a JetByteTools::Win32::CSmartHeapPointer rather than a JetByteTools::Win32::CSmartLocalPointer for the memory returned from CommandLineToArgvW().
-
Added JetByteTools::Win32::CIOCompletionPort::GetHandle() and JetByteTools::Win32::CIOCompletionPort::TryAssociateDevice().
-
Added JetByteTools::Win32::CFileDeleter.
-
Added JetByteTools::Win32::CMD5Digest.
-
Added JetByteTools::Win32::CWOW64FileSystemRedirector.
Version 5.2.1
Version 5.2
There were no release notes for this library prior to version 5.2
Generated on Thu Mar 26 16:38:11 2009 for JetByte Socket Tools - v6.0 by
1.5.3