raceOnRCWCleanup MDA

Note

This article is specific to .NET Framework. It doesn't apply to newer implementations of .NET, including .NET 6 and later versions.

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