By: John Kaster
Abstract: This beta consists of an updated implementation for the TMultiReadExclusiveWriteSynchronizer in SysUtils.pas to fix a possible deadlock issue. It also contains some speed improvements.
This updated SysUtils.pas file fixes a deadlock issue that can occur in the
TMultiReadExclusiveWriteSynchronizer. The problem
tends to show up when a lot of threads are using the same TMREWS object at the same time.
Typical symptoms of the problem occur in ISAPI dll web applications. They may stop sending responses back to
the client web
browser. On the server, the CPU usage may be pegged at 100%.
This public beta addresses the deadlock issue in the TMultiReadExclusiveWriteSynchronizer.
Because this is a public beta, you must agree to a disclaimer before downloading the file
containing the update. When you attempt to download the file, you will be asked if you agree to the disclaimer.
The file is then streamed directly from the web server. This streaming process normally prevents auto-resuming
the file with a download manager. The file is currently 91.3K. We apologize for any inconvenience this may
cause if your download gets interrupted.
You can download this file from CodeCentral. The direct link to download the file is http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=17761. The zip file download is
This file may be updated from time to time, and you can look at the detail listing for the file to find out when it
was last updated, or any other specific notes regarding changes to this beta.
Because this is a beta version, you should back up the current, shipping version of the
files you will be replacing with the files contained in this beta so you can restore them without having to re-install
the entire product.
Copy SysUtils.pas to your current project's directory and rebuild the project. SysUtils.dcu will be created in
your current projects
directory. You will now have the fix in your application. If you want all applications to have the patch, you can
copy the SysUtils.dcu
to your lib directory.
Borland is planning to release a certified version of this beta software in the future. We are providing it as a
public beta to have as broad a base as possible for testing it before we certify it. This is specifically why we have
made this file available for our customers to download.
Once you have compiled the fix into your application, you should not run into deadlock. This is especially so
in web applications. If you run into errors, please try to produce a test
case and put it in QualityCentral.
We have performed tests to verify that the software you may be downloading and testing works as intended. However, you may still encounter problems with using this version of the software. It has not yet been certified. Please read the disclaimer you see when downloading the file very carefully, as it provides details on Borland's legal position with respect to this public beta.
SysUtils.pas is provided as-is.
Please use QualityCentral to provide feedback on this
beta in the Public Beta - Delphi/RTL/TMultiReadWrite project area. If you are unable to use the currently
available QualityCentral clients, use the borland.public.delphi.rtl newsgroup. If you cannot access our newsgroups with a conventional newsgroup reader, you can use a browser to access this newsgroup at http://newsgroups.borland.com.
If you encounter problems with this beta product, please provide as much detail as possible in a QualityCentral report, or in a newsgroup message if you can't use QualityCentral yet, including the platform you are running on and steps to reproduce the problem.
If you are uncertain how to configure newsgroup access, please refer to Borland's newsgroup reference pages.
Download Delphi XE5 and create Android apps!
Get Free Trial
Webinars on demand!
More social media choices:
Delphi on Google+
@RADTools on Twitter
Server Response from: ETNASC02