[Mono-dev] [PATCH] Optimizations for FileSystemWatcher and MulticastDelegate

Andreas Färber andreas.faerber at web.de
Thu Jul 19 15:16:53 EDT 2007

Hi Juraj,

Am 19.07.2007 um 20:36 schrieb Juraj Skripsky:

> I thought about it some more.

Me too...

> Yes, you're right, returning an array
> containing this.Clone() is the safest thing to do. Otherwise we might
> mix up the chaining...
> I'm looking into a more MS.net-like implementation (using an
> 'invocationList' array instead of a linked list). I think the  
> resulting
> code will be much simpler. And the invocation of a chain will be done
> iteratively rather than recursively, which is much nicer.

Actually I now have second thoughts. What I said is certainly true in  
general, but in this case? It's probably not what the average user  
messes around with but affects her performance.

Would be safest though either way if you could write a small unit  
test and compare it to .NET, that would especially come in handy if  
you do change the implementation.

> Right now, I'm trying to wrap my head around
> mono_marshal_get_delegate_invoke() in marshal.c...

Personally I've been very happy when things are implemented in Mono  
and work on a certain platform, independent of their performance. I  
find it amazing that you take the time for all these code performance  
reviews - thanks for those contributions and keep up the good work!


More information about the Mono-devel-list mailing list