private Task <TestResultContainer> GetOrWaitForTask_(AutoResetEvent lockObject, EyesService.Tasker tasker, string serviceName) { Task <TestResultContainer> nextTestToOpen = null; try { nextTestToOpen = tasker.GetNextTask(); } catch (Exception e) { Logger.Log("Error: " + e); } if (nextTestToOpen == null) { try { Logger.Verbose("waiting on lockObject #{0}", lockObject.GetHashCode()); lockObject.WaitOne(500); nextTestToOpen = tasker.GetNextTask(); } catch (Exception e) { Logger.Log("Error: " + e); } } return(nextTestToOpen); }
private void FetchCssFiles_(List <string> missingCssList) { logger_.Verbose("enter"); List <CssTreeNode> cssTreeNodes = new List <CssTreeNode>(); foreach (string missingCssUrl in missingCssList) { if (missingCssUrl.StartsWith("blob:") || missingCssUrl.StartsWith("data:")) { logger_.Log("trying to download something impossible: {0}", missingCssUrl); cssData_.Add(missingCssUrl, string.Empty); continue; } logger_.Verbose("Downloading {0}", missingCssUrl); CssTreeNode cssTreeNode = new CssTreeNode(missingCssUrl, logger_, OnCssDownloadComplete_); cssTreeNodes.Add(cssTreeNode); AutoResetEvent waitHandle = new AutoResetEvent(false); logger_.Verbose("creating waithandle {0}", waitHandle.GetHashCode()); waitHandles_[cssTreeNode] = waitHandle; cssTreeNode.Run(); } logger_.Verbose("exit"); }
public static int Main(String [] args) { int rValue = 100; AutoResetEvent are = null; Console.WriteLine("Test AutoResetEvent for expected NullRef Exceptions"); Console.WriteLine( ); // try { // #pragma warning disable 618 // are.Handle = new IntPtr(1); // #pragma warning restore 618 // rValue = 1; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (are.Handle(new IntPtr(1)))"); // } // try { // #pragma warning disable 618 // IntPtr iptr = are.Handle; // #pragma warning restore 618 // rValue = 2; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (IntPtr iptr = are.Handle)"); // } // try { // are.Close(); // rValue = 3; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (are.Close())"); // } try { are.Equals(new ManualResetEvent(true)); rValue = 4; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.Equals(new ManualResetEvent()))"); } try { are.GetHashCode(); rValue = 5; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.GetHasCode())"); } // try { // are.GetLifetimeService(); // rValue = 6; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (are.GetLifetimeService())"); // } try { are.GetType(); rValue = 7; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.GetType())"); } // try { // are.InitializeLifetimeService(); // rValue = 8; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (are.InitializeLifeTimeService())"); // } try { are.Reset(); rValue = 9; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.Reset())"); } try { are.Set(); rValue = 10; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.Set())"); } try { are.ToString(); rValue = 11; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.ToString())"); } try { are.WaitOne(); rValue = 12; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.WaitOne())"); } try { are.WaitOne(1000); //,true); rValue = 13; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.WaitOne(int,bool))"); } // try { // are.WaitOne(1000);//,false); // rValue = 14; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (are.WaitOne(int,bool))"); // } try { are.WaitOne(new TimeSpan(1000)); //,true); rValue = 15; } catch (NullReferenceException) { Console.WriteLine("Caught NullReferenceException (are.WaitOne(TimeSpan,bool))"); } // try { // are.WaitOne(new TimeSpan(1000));//,false); // rValue = 16; // } // catch (NullReferenceException) { // Console.WriteLine("Caught NullReferenceException (are.WaitOne(TimeSpan,bool))"); // } Console.WriteLine("Return Code == {0}", rValue); return(rValue); }
public byte[] clientSendRequestAnyTag(EnvelopType envelop, byte[] messageSide1, ref int envelop_tag) { EnvelopKey envelop_key = new EnvelopKey(envelop); Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag 1" + " / " + envelop_key + " -- " + instance_name); byte[] messageSide2 = null; Monitor.Enter(sync); try { // envia a requisição para o root parceiro int facet = envelop.Item3; Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag send to facet " + facet + " - nofsockets=" + client_socket_facet.Count + " / " + envelop_key + " -- " + instance_name); foreach (int f in client_socket_facet.Keys) { Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag --- FACET KEY=" + f); } Socket socket = client_socket_facet [facet]; byte[] messageSide1_enveloped_raw = ObjectToByteArray(new Tuple <EnvelopType, byte[]> (envelop, messageSide1)); Int32 length = messageSide1_enveloped_raw.Length; byte[] messageSide1_enveloped_raw_ = new byte[4 + length]; BitConverter.GetBytes(length).CopyTo(messageSide1_enveloped_raw_, 0); Array.Copy(messageSide1_enveloped_raw, 0, messageSide1_enveloped_raw_, 4, length); socket.Send(messageSide1_enveloped_raw_); Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag 2 nbytes=" + messageSide1_enveloped_raw.Length + " / " + envelop_key); // Verifica se já há resposta para a requisição no "conjunto de respostas pendentes de requisição" if (!reply_pending_list.ContainsKey(envelop_key)) { Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag 3 - BEFORE WAIT " + envelop_key); // Se não houver, coloca um item no "conjunto de requisições pendentes de resposta" e espera. if (!request_pending_list.ContainsKey(envelop_key)) { request_pending_list [envelop_key] = new Dictionary <int, Queue <AutoResetEvent> >(); } if (!request_pending_list [envelop_key].ContainsKey(-1)) { request_pending_list [envelop_key][-1] = new Queue <AutoResetEvent>(); request_pending_list [envelop_key][-1].Enqueue(new AutoResetEvent(false)); } AutoResetEvent sync_send = request_pending_list [envelop_key][-1].Peek(); //request_pending_list [envelop_key][envelop_tag] = sync_send; Monitor.Exit(sync); Console.WriteLine("clientSendRequestAny - WAIT / " + unit.CID.getInstanceName() + "/" + sync_send.GetHashCode() + " BEFORE !!! "); sync_send.WaitOne(); Console.WriteLine("clientSendRequestAny - WAIT / " + unit.CID.getInstanceName() + "/" + sync_send.GetHashCode() + " AFTER !!! "); Monitor.Enter(sync); Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag 3 - AFTER WAIT " + envelop_key); } Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag 4" + " / " + envelop_key); int[] keys_vector = new int[reply_pending_list[envelop_key].Keys.Count]; reply_pending_list[envelop_key].Keys.CopyTo(keys_vector, 0); envelop_tag = keys_vector[0]; Queue <byte[]> pending_replies = reply_pending_list [envelop_key][envelop_tag]; Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequestAnyTag 5 -- pending_replies.Count = " + pending_replies.Count); if (pending_replies.Count > 0) { messageSide2 = reply_pending_list[envelop_key][envelop_tag].Dequeue(); } if (pending_replies.Count == 0) { reply_pending_list[envelop_key].Remove(envelop_tag); } if (reply_pending_list[envelop_key].Count == 0) { reply_pending_list.Remove(envelop_key); } //reply_pending_list.Remove(envelop_key); } finally { Monitor.Exit(sync); } Trace.WriteLineIf(unit.TraceFlag == true, server_facet + "/" + rank + ": clientSendRequest 5"); // retorna a menagem ... return(messageSide2); }