##// END OF EJS Templates
fixed promise chaining behavior, the error handler doesn't handle result or cancellation handlers exceptions these exceptions are propagated to the next handlers.
fixed promise chaining behavior, the error handler doesn't handle result or cancellation handlers exceptions these exceptions are propagated to the next handlers.

File last commit:

r129:471f596b2603 v2
r196:40d7fed4a09e default
Show More
Signal.cs
31 lines | 737 B | text/x-csharp | CSharpLexer
using System;
using System.Threading;
namespace Implab.Parallels {
/// <summary>
/// Implements a simple signalling logic using <see cref="Monitor.PulseAll(object)"/>.
/// </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);
}
}
}