Git Product home page Git Product logo

retlang's People

Watchers

 avatar  avatar

retlang's Issues

IChannel and IQueueChannel are incompatible

It is impossible to create generic code that use interfaces and then decide to 
use the event model (Channel) or queue model (QueueChannel) later.

Proposal: drop the IQueueChannel interface altogether and have QueueChannel 
implement IChannel.

Alternative Proposal: have IQueueChannel be the base interface and IChannel 
inherit from that.

IQueueChannel has two methods and no sub-interfaces:
* void Publish(T message)
* IDisposable Subscribe(IExecutionContext, Action<T>)

IChannel has the same two methods (note: IExecutionContext is an IFiber in this 
case, but IFiber is an IExecutionContext) along with a set of other 
subscription models.  There is no reason why there has to be the separation.


Original issue reported on code.google.com by [email protected] on 22 Mar 2011 at 5:20

Race condition in Channel.NumSubscribers

Line 119 of Channel.cs is:

get { return _subscribers == null ? 0 : 
_subscribers.GetInvocationList().Length; }

This will throw a NullReferenceException if ClearSubscribers() is called on 
another thread while NumSubscribers is executing. I suggest changing this to:

get {
event Action<T> safeSubscribers = _subscribers;
return safeSubscribers == null ? 0 : safeSubscribers.GetInvocationList().Length;
}

Original issue reported on code.google.com by [email protected] on 18 May 2011 at 8:42

Compile error

What steps will reproduce the problem?
1. MonoDevelop -> Project -> Build Solution

What is the expected output? What do you see instead?
Build Complete

The method signature is:
public IUnsubscriber
SubscribeOnProducerThreads(IProducerThreadSubscriber<T> subscriber)
{

            return
SubscribeOnProducerThreads(subscriber.ReceiveOnProducerThread);

        }


[Task:File=/home/andrew/source/Retlang/src/Retlang/Channels/Channel.cs,
Line=94, Column=58, Type=Error, Priority=Normal, Description=Method
`Retlang.Channels.IProducerThreadSubscriber`1[T].ReceiveOnProducerThread()'
is referenced without parentheses(CS0654)]

What version of the product are you using? On what operating system?
4.0.0 (BETA?) - latest subversion get 
Ubuntu 8.04

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 22 Nov 2008 at 5:27

Is the source downloadable?


Apologies for putting this in the Issues section but I can't find a way to 
download the source (although I can browse it on SVN).  Am I missing 
something?  The downloadable zip file only contains a dll and a PDB.

Original issue reported on code.google.com by [email protected] on 19 Sep 2007 at 5:31

Channel registers subscriptions on the fiber, this ties subscriptions to lifetime of the fiber instead of the channel

Not sure if this is an issue or just different ways of using Retlang but I 
wanted to bring it to your attention.

Previous to the introduction of ISubscriptionRegistry and related changes, any 
subscriptions to a Channel would only be held by the Channel. We relied on this 
behavior to avoid having to unsubscribe/dispose any subscriptions to a Channel 
as the lifetime of the Channel and the objects that were subscribing to it were 
generally tied together.

With the current behavior all subscriptions to a Channel are registered on the 
fiber (via ISubscriptionsRegistry) and so they will be held for the lifetime of 
the fiber or until we unsubscribe/dispose them.

Obviously, the answer is to ensure we unsubscribe/dispose all our subscriptions 
but it was very convenient for us to not have to.

I've worked around the problem by simply removing the RegesterSubscription line 
from Channel.

Original issue reported on code.google.com by leafgarland on 16 May 2011 at 11:45

AsyncRequestSubscriber not included in Relang_2008.csproj -> does not build

What steps will reproduce the problem?
1. open solution in vs 2008
2. hit build 
3. get error

What is the expected output? What do you see instead?
expecting successful build ;)

What version of the product are you using? On what operating system?
trunk

Please provide any additional information below.
all you need to do is include AsyncRequestSubscriber.cs in the project and
all is well.


Index: retlang-read-only/src/Retlang/Retlang_2008.csproj
===================================================================
--- retlang-read-only/src/Retlang/Retlang_2008.csproj   (Revision 197)
+++ retlang-read-only/src/Retlang/Retlang_2008.csproj   (Arbeitskopie)
@@ -58,6 +58,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="AsyncRequestSubscriber.cs" />
     <Compile Include="BatchSubscriber.cs" />
     <Compile Include="BinaryTransferEnvelope.cs" />
     <Compile Include="CommandQueue.cs" />

Original issue reported on code.google.com by [email protected] on 4 Jan 2008 at 9:23

Retlang doesn't compile in Silverlight environment out of the box

What steps will reproduce the problem?
1. add a new Silverlight library project named Retlang.SL_2008.csproj to 
Retlang_2008.sln
2. recreate the same folder structure in the new projects as in 
Retlang_2008.csproj
3. add as links all files from Retlang_2008.csproj (except FormFiber.cs) 
to the corresponding folders in the new project
4. compile the new project 

What is the expected output? What do you see instead?
Retlang.SL_2008.csproj doesn't compile because there is no SortedList<> 
and Stopwatch classes in Silverlight

What version of the product are you using? On what operating system?
0.4.2 and 0.4.3. The later introduces another compilation error in 
ThreadFiber but the patch submitted in the issue #6 takes care of it.

Please provide any additional information below.
As a temporary workaround I added to the SL project the first SL 
implementation of Stopwatch I saw on the Internet:
http://blog.tiaan.com/link/2009/02/03/stopwatch-silverlight

and there is at least one more available:
http://www.wiredprairie.us/blog/index.php/archives/723

Then, just to make sure everything else works, I defined sorted list as 

public class SortedList<TKey, TValue> : Dictionary<TKey, TValue>
{}

Which did the trick and the new project compiled and worked in SL

So I wonder if it's possible to add a Silverlight project to the retlang 
code base? if i can help with anything please let me know.

Original issue reported on code.google.com by [email protected] on 26 Dec 2009 at 3:27

Include Retlang.xml code comment documentation

What steps will reproduce the problem?
1. Download Retlang binary .zip download
2. Add reference in Visual Studio to Retlang DLL
3. When referencing Retlang types and methods Visual Studio does not
provide documentation provided by XML comments in Retlang code.

What is the expected output? What do you see instead?
It'd be nice to have the inline documentation.

What version of the product are you using? On what operating system?
0.4.4

Please provide any additional information below.
Low priority, but it'd be a nice, easy addition rather than having to keep
jumping between VS.NET and the CHM documentation.

Original issue reported on code.google.com by [email protected] on 11 Mar 2010 at 8:05

Need a scheduler that is not tied to the wall clock

When writing simulation code, you need to control the simulation time 
separately from the wall clock.  A simulation needs to pause and resume all 
processing.

If the scheduler could be set up to allow that functionality, I could simply 
use the SubscribeToBatch() feature.

Original issue reported on code.google.com by [email protected] on 22 Mar 2011 at 5:25

SubscribeToBatch and IScheduler should use TimeSpan instead of long

The TimeSpan struct is much more useful for writing comprehensible code, and it 
is already used in the .Net libraries for thread scheduling.

I would much rather write something like this:

    channel.SubscribeToBatch(fiber, this.DoSomething, TimeSpan.FromMinutes(1));

than something like this:

    channel.SubscribeToBatch(fiber, this.DoSomething, 1000 * 60);

It also avoids the inconsistency you have from SubscribeToBatch (using 
int/Int32) and Scheduler (using long/Int64).

Original issue reported on code.google.com by [email protected] on 22 Mar 2011 at 5:32

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.