static void AtEvent1_Invoke(IntPtr AtEvent1_Context, Tuple e) { AtEvent1_Data = e; // notify wait handler AtEvent1_PollWait.Set(); AtEvent1_InvokeWait.WaitOne(); }
public static Tuple AtEvent1_Poll( IntPtr AtEvent1_Context ) { if (AtEvent1_InvokeWait_Counter == 0) AtEvent1_InvokeWait_Counter = 1; else AtEvent1_InvokeWait.Set(); // wait for it... AtEvent1_PollWait.WaitOne(); var r = AtEvent1_Data; AtEvent1_Data = null; return r; }
public static void AtEvent1_EndAsync( IntPtr AtEvent1_Context ) { AtEvent1_Data = null; AtEvent1_PollWait.Set(); AtEvent1_PollWait = null; AtEvent1_InvokeWait = null; // release wait handler }