##// END OF EJS Templates
Added ResetState to RunnableComponent to reset in case of failure...
Added ResetState to RunnableComponent to reset in case of failure Added StateChanged event to IRunnable Renamed Promise.SUCCESS -> Promise.Success Added Promise.FromException Renamed Bundle -> PromiseAll in PromiseExtensions

File last commit:

r129:471f596b2603 v2
r205:8200ab154c8a v2
Show More
Signal.cs
31 lines | 737 B | text/x-csharp | CSharpLexer
cin
Added Signal class a lightweight alternative to ManualResetEvent
r128 using System;
using System.Threading;
namespace Implab.Parallels {
/// <summary>
cin
Added SharedLock to synchronization routines
r129 /// Implements a simple signalling logic using <see cref="Monitor.PulseAll(object)"/>.
cin
Added Signal class a lightweight alternative to ManualResetEvent
r128 /// </summary>
public class Signal {
readonly object m_lock = new object();
bool m_state;
public void Set() {
lock(m_lock) {
m_state = true;
Monitor.PulseAll(m_lock);
}
}
public void Wait() {
lock (m_lock)
if (!m_state)
Monitor.Wait(m_lock);
}
public bool Wait(int timeout) {
lock (m_lock)
return m_state || Monitor.Wait(m_lock, timeout);
}
}
}