Months have passed since the last update of my freeware utils so here are new versions...
DSiWin32 1.29
- Added functions DSiIsAdmin, DSiMoveFile, DSiMoveOnReboot, and DSiGetThreadTimes (two overloaded versions).
- TDSiTimer properties changed from published to public.
GpHugeFile 5.04a
- GetFileSize Win32 call was incorrectly raising exception when file was $FFFFFFFF bytes long.
(read more: A Case of Mysterious SUnkOSError) - SetFilePointer Win32 call was incorrectly raising exception when position was set to $FFFFFFFF absolute.
- Added TGpHugeFileStream.Flush method.
- Added a way to disable buffering on the fly in both TGpHugeFile and TGpHugeFileStream.
- Added bunch of missing Win32Check checks.
- Better error reporting when application tries to read/write <= 0 bytes.
- Added optional logging of all Win32 calls to the TGpHugeFile (enabled with /dLogWin32Calls).
- Added thread concurrency debugging support to TGpHugeFileStream when compiled with /dDEBUG.
- Don't call MsgWait... in Close if file access is not asynchronous as that causes havoc with MS thread pool execution.
GpLists 1.29
- Added TStringList helper.
- Use spinlock for locking. Spinlock implementation kindly provided by Lee_Nover.
- TGpObjectRingBuffer can put locks around all operations.
- TGpObjectRingBuffer can trigger an event when buffer is fuller than the specified threshold and another event when buffer is emptier than the (different) threshold.
- Added missing locks to TGpDoublyLinkedList in multithreaded mode.
- Disallow Move and Insert operations on sorted lists.
- Added bunch of 'inline' directives.
GpSharedMemory 4.11a
- AllocateHwnd and DeallocateHwnd replaced with thread-safe versions.
(read more: AllocateHwnd is not Thread-Safe) - TTimer replaced with thread-safer TDSiTimer.
GpStreams 1.13
Interesting things have been going on in the GpStreams unit. TGpBufferedStream class is a stream wrapper which provid read-buffering on any stream. TGpScatteredStream is a stream that provides contiguous access to a scattered data. I plan to write an article on its use soon.
- Implemented TGpScatteredStream class.
- Added TGpBufferedStream class. At the moment, only reading is buffered while writing is implemented as a pass-through operation.
- Added AutoDestroyWrappedStream property to the TGpStreamWindow class.
- Check for < 0 position in TGpStreamWindow.Seek.
- Fixed reading/writing of zero bytes in TGpStreamWindow.
- Added bunch of 'inline' directives.
GpStuff 1.06
- ReverseCardinal renamed to ReverseDWord.
- Added function ReverseWord.
Previous updates: New GpLists and other updates
No comments:
Post a Comment