raceOnRCWCleanup MDA

The raceOnRCWCleanup managed debugging assistant (MDA) is activated when the common language runtime (CLR) detects that a Runtime Callable Wrapper (RCW) is in use when a call to release it is made using a command such as the Marshal.ReleaseComObject method.

Symptoms

Access violations or memory corruption during or after freeing an RCW using ReleaseComObject or a similar method.

Cause

The RCW is in use on another thread or on the freeing thread stack. An RCW that is in use cannot be released.

Resolution

Do not free an RCW that could be in use either in the current or in other threads.

Effect on the Runtime

This MDA has no effect on the CLR.

Output

A message describing the error.

Configuration

<mdaConfig>
  <assistants>
    <raceOnRCWCleanup/>
  </assistants>
</mdaConfig>

See Also

Concepts

Diagnosing Errors with Managed Debugging Assistants

Interop Marshaling Overview

Reference

MarshalAsAttribute

Other Resources

Interoperability