Microsoft KB Archive/101193

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

INFO: Interrupting Threads in Critical Sections

Q101193



The information in this article applies to:


  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT Server versions 3.1, 3.5, 3.51
    • Microsoft Windows NT Workstation versions 3.1, 3.5, 3.51
    • Microsoft Windows 95



If a thread enters a critical section and then terminates abnormally, the critical section object will not be released. Many components of the C Run-time library are not reentrant and use a resource locking scheme to maintain coherency in the multithreaded environment. Thus, a thread that has entered a C Run-time function, such as printf(), could deadlock all access (within that process) to printf() if it terminates abnormally.

This situation could arise if a thread is terminated with TerminateThread() while it holds a resource lock. If this occurs, any thread that tries to acquire that resource lock will become deadlocked.


SUMMARY

Additional query words: 3.10 3.50 4.00

Keywords :
Issue type : kbinfo
Technology : kbAudDeveloper kbWin32sSearch kbWin32API


Last Reviewed: December 16, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.