void open_connection() { pending_++; var s = socketFactory_.create(endpoint, port, secure, verifyCertificate); StdErrorOut.Instance.StdOut(LogLevel.debug, "AwsHttpClient.open_connection"); s.open ( (success, reason) => { StdErrorOut.Instance.StdOut(LogLevel.debug, "(success, reason) = " + success); pending_--; if (success) { lock (mutex_) available_.Add(s); StdErrorOut.Instance.StdOut(LogLevel.debug, "success -> available_.Add(s) ->"); run_tasks(); } else if (endpoint != "169.254.169.254") { StdErrorOut.Instance.StdError(string.Format("Failed to open connection to {0}:{1} : {2}", endpoint, port, reason)); } // We need to explicitly reset because there is a circular reference between s and this callback. s.reset(); }, connectTimeout ); }