INFO: Interrupting Threads in Critical Sections
Article ID: 101193
Article Last Modified on 11/21/2006
APPLIES TO
- Microsoft Win32 Application Programming Interface, when used with:
- Microsoft Windows NT Advanced Server 3.1
- Microsoft Windows NT Server 3.5
- Microsoft Windows NT Server 3.51
- Microsoft Windows NT Workstation 3.1
- Microsoft Windows NT Workstation 3.5
- Microsoft Windows NT Workstation 3.51
This article was previously published under Q101193
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: kbinfo KB101193