You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We've had several discussions on issues and pull requests on this repo, and on Castle.Core, and I wanted to bring it together (if possible).
Firstly, I want to thank you guys for getting involved. I imagine we've all got day jobs, so any time we can give to this is fantastic.
Here is my current thinking, it's by no means an exhaustive list, it's just what's top of mind at the moment.
The design of AsyncInterceptorBase is a mistake.
In attempting to provide just two methods to override, both of which are asynchronous, it has made synchronous interception problematic with the potential of causing deadlocks when transitioning back from the asynchronous interceptor to the underlying synchronous method being intercepted.
I think one of the challenges we've had with async before Proceed has been to do with the return value being out of band and as a result out of our control.
I believe you @stakx think differently, though I can't remember the comment that gave me that impression.
Closely align with the design of Castle.Core
This is related to the return value discussion since the design of the IInvocaton has the return value as a property.
I think it is a benefit to match the design of Castle.Core as it adheres to the Principle of least astonishment and developers familiar with Castle.Core will find it easier to pick up AsyncInterceptor.
Close alignment to Castle.Core may improve the chances of this becoming incorporated into Castle.Core. This is something I considered when I first started this library, and I've received comments along that line on other issues. Thoughts @stakx?
The current alpha introduces some breaking changes, and I believe we must introduce more, given point 1. I think now is an excellent time to tackle some other gnarly issues if you guys are happy to get involved?
We've had several discussions on issues and pull requests on this repo, and on Castle.Core, and I wanted to bring it together (if possible).
Firstly, I want to thank you guys for getting involved. I imagine we've all got day jobs, so any time we can give to this is fantastic.
Here is my current thinking, it's by no means an exhaustive list, it's just what's top of mind at the moment.
AsyncInterceptorBaseis a mistake.The current alpha introduces some breaking changes, and I believe we must introduce more, given point 1. I think now is an excellent time to tackle some other gnarly issues if you guys are happy to get involved?
All views regretfully received.