[Mono-dev] Mono - CreateProcess error

Brian Crowell mono-devel at fluggo.com
Tue Sep 26 14:12:07 EDT 2006


Miguel de Icaza wrote:
> I wonder if you are calling too many processes in quick succession, so
> its just a matter of not enough time to clean up those handles/.

That's not the case. I've had long-running programs that would wait several 
minutes between invocations, and they also suffer from this.

As I explain in the bug report, even creating a Process and failing to call 
Dispose will not cause a problem by itself. Yes, there may be more Process 
handles in the table at once, but the garbage collector is pretty quick at 
cleaning them up, and the most I've seen in the table this way is maybe twenty, 
a far cry from the table's limit of 4096.

No, the handle leak problem happens regardless of how the C# program chooses to 
treat its resources. Disposing of the Process object will clean up most handles 
instantly, but regardless of whether you call Dispose, some handles will be 
leaked. And if your program runs for a long time, it will eventually hang the 
Mono process.

--Brian



More information about the Mono-devel-list mailing list