User: xtoff
Date: 2009/12/18 03:42 PM

Modified:
 /InversionOfControl/trunk/src/Castle.MicroKernel/Context/
  CreationContext.cs
 /InversionOfControl/trunk/src/Castle.MicroKernel/Handlers/
  AbstractHandler.cs
 /InversionOfControl/trunk/src/Castle.MicroKernel/Lifestyle/Pool/
  DefaultPool.cs
 /InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/
  AbstractSubSystem.cs
 /InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/Conversion/
  DefaultConversionManager.cs

Log:
 - some more minor changes to raise level of Sliverlight compatibility

File Changes:

Directory: /InversionOfControl/trunk/src/Castle.MicroKernel/Context/
====================================================================

File [modified]: CreationContext.cs
Delta lines: +4 -0
===================================================================

--- InversionOfControl/trunk/src/Castle.MicroKernel/Handlers/AbstractHandler.cs 
2009-12-18 22:33:55 UTC (rev 6462)
+++ InversionOfControl/trunk/src/Castle.MicroKernel/Handlers/AbstractHandler.cs 
2009-12-18 22:42:45 UTC (rev 6463)
@@ -32,7 +32,11 @@
        [Serializable]
 #endif
        [DebuggerDisplay("Model: {ComponentModel.Service} / 
{ComponentModel.Implementation} ")]
+#if (!SILVERLIGHT)
        public abstract class AbstractHandler : MarshalByRefObject, IHandler, 
IExposeDependencyInfo, IDisposable
+#else
+       public abstract class AbstractHandler : IHandler, 
IExposeDependencyInfo, IDisposable
+#endif
        {
                private readonly ComponentModel model;

Directory: 
/InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/Conversion/
==================================================================================

File [modified]: DefaultConversionManager.cs
Delta lines: +0 -0
===================================================================

Directory: /InversionOfControl/trunk/src/Castle.MicroKernel/Handlers/
=====================================================================

File [modified]: AbstractHandler.cs
Delta lines: +3 -4
===================================================================

--- 
InversionOfControl/trunk/src/Castle.MicroKernel/Lifestyle/Pool/DefaultPool.cs   
    2009-12-18 22:33:55 UTC (rev 6462)
+++ 
InversionOfControl/trunk/src/Castle.MicroKernel/Lifestyle/Pool/DefaultPool.cs   
    2009-12-18 22:42:45 UTC (rev 6463)
@@ -18,7 +18,6 @@
        using System;
        using System.Collections.Generic;
        using System.Threading;
-       using System.Collections;
 
        using Castle.Core;
 
@@ -27,7 +26,7 @@
 #endif
        public class DefaultPool : IPool, IDisposable
        {
-               private readonly Stack available = Stack.Synchronized(new 
Stack());
+               private readonly Stack<object> available = new Stack<object>();
                private readonly List<object> inUse = new List<object>();
                private readonly int initialsize;
                private readonly int maxsize;
@@ -131,8 +130,8 @@
 
                public virtual void Dispose()
                {
-                       // Release all components 
-
+                       // Release all components
+                       // NOTE: don't we need a lock here?
                        foreach(object instance in available)
                        {

Directory: /InversionOfControl/trunk/src/Castle.MicroKernel/Lifestyle/Pool/
===========================================================================

File [modified]: DefaultPool.cs
Delta lines: +4 -1
===================================================================

--- 
InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/AbstractSubSystem.cs 
    2009-12-18 22:33:55 UTC (rev 6462)
+++ 
InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/AbstractSubSystem.cs 
    2009-12-18 22:42:45 UTC (rev 6463)
@@ -15,8 +15,11 @@
 namespace Castle.MicroKernel
 {
        using System;
-
+#if (!SILVERLIGHT)
        public abstract class AbstractSubSystem : MarshalByRefObject, ISubSystem
+#else
+       public abstract class AbstractSubSystem : ISubSystem
+#endif
        {
                private IKernel kernel;

Directory: /InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/
=======================================================================

File [modified]: AbstractSubSystem.cs
Delta lines: +16 -0
===================================================================

--- 
InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/Conversion/DefaultConversionManager.cs
   2009-12-18 22:33:55 UTC (rev 6462)
+++ 
InversionOfControl/trunk/src/Castle.MicroKernel/SubSystems/Conversion/DefaultConversionManager.cs
   2009-12-18 22:42:45 UTC (rev 6463)
@@ -29,7 +29,12 @@
 #endif
        public class DefaultConversionManager : AbstractSubSystem, 
IConversionManager, ITypeConverterContext
        {
+#if (!SILVERLIGHT)
                private static readonly LocalDataStoreSlot slot = 
Thread.AllocateDataSlot();
+#else
+               [ThreadStatic]
+               private static readonly Stack<ComponentModel> slot;
+#endif
         private readonly IList<ITypeConverter> converters = new 
List<ITypeConverter>();
         private readonly IList<ITypeConverter> standAloneConverters = new 
List<ITypeConverter>();
 
@@ -181,6 +186,8 @@
                {
                        get
                        {
+                               
+#if (!SILVERLIGHT)
                                var stack = 
(Stack<ComponentModel>)Thread.GetData(slot);
 
                                if (stack == null)
@@ -190,6 +197,15 @@
                                }
 
                                return stack;
+#else
+                               if(slot == null)
+                               {
+                                       slot = new Stack<ComponentModel>();
+                               }
+
+                               return slot;
+
+#endif
                        }
                }

--

You received this message because you are subscribed to the Google Groups 
"Castle Project Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-commits?hl=en.


Reply via email to