retlang

Retlang input prioritization

What is the preferred way, if any, to handle channel input in a prioritized fashion? Is there anything equivalent to Scala's "reactWithin(0) { ... case TIMEOUT }" construct? ...

Bounded Queue scenario

I need to implement a producer/consumer bounded queue, multiple consumers against a single producer. I have a push function that adds an item to the queue and then checks for maxsize. If we have reached it return false, in every other case return true. In the following code _vector is a List<T>, onSignal basically consumes an item in a...

Retlang: What is the best way to unsubscribe from a channel?

I'm not sure what is the best way to unsubscribe from a channel when using Retlang. When you subscribe by calling ISubscriber<T>::Subscribe(...) you are returned an IUnsubscriber. This interface has no methods. Going up a level, IChannel<T> also does not have any methods. The only thing I can think of is casting an ISubscriber<T> to t...

Message-based multithreading or Thread Pool for a short and uncommon action?

I'm currently using Retlang for message-based multithreading in .NET, which is a great library. I've got no explicit locks anymore, every thread is doing its own business, managing its part of the application and communicating with other threads via messages. I now have to implement a feature of my application that could also have its o...