While porting a .NET library I wrote from Windows (VS2008) to Linux (Mono 2.x) I have encountered a strange problem. Here is a high-level description of what is going on:
*) Class Top has an event Run that can be subscribed by 'public'. *) Class TopPlus inherits from Top and subscribes to Run. *) Class Side takes TopPlus as a parameter to its constructor and subscribes to TopPlus.Run. *) Now, I create an instance of TopPlus, 'tp', and use that instance in creating an instance of Side, 's'. *) Finally, I call tp.Run(), and TopPlus' subscribe gets called, but Side's subscriber does not get run. It is a bit more complex than this, but that is the gist of what is going on. What is curious is that I observed this behavior in versions of Mono older than 2.2, but it did not occur in 2.2 (i.e. both subscribers got called). I had figured the issue had already been found and fixed, but today in testing with Mono 2.4, this behavior (i.e. only TopPlus' subscriber being called) returned! I have run mono with the --trace option to verify Side's subscriber is indeed never being called when the event is called. I can't provide code as it is proprietary, and my attempts to create a simple test case so far have failed. I have narrowed it down to a runtime issue, as it does not matter if the library is built with Mono 2.2, Mono 2.4, or VS2008. It is the version of '/usr/bin/mono' that is used that affects this behavior. I know this is all a bit vague, but before I write a long winded, detailed explanation of my library's architecture I would like to know if the above brings any know issues or workarounds to mind. Thanks! -- Ryan Kirkpatrick <[email protected]> Senior Design Engineer Inovonics Wireless Corporation _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
