protected bool precall(string service_md5sum) { if (service_md5sum != md5sum) { EDB.WriteLine("Call to service [{0} with md5sum [{1} does not match md5sum when the handle was created([{2}])", service, service_md5sum, md5sum); return(false); } if (server_link != null && server_link.connection.dropped) { if (persistent) { EDB.WriteLine("WARNING: persistent service client's server link has been dropped. trying to reconnect to proceed with this call"); } server_link = null; } if (is_shutdown && persistent) { EDB.WriteLine("WARNING: persistent service client is self-resurrecting"); } is_shutdown = false; if (persistent && server_link == null || !persistent) { server_link = linkmaker(); } return(true); }
public void shutdown() { if (!is_shutdown) { is_shutdown = true; if (!persistent && server_link != null) { ServiceManager.Instance.removeServiceServerLink(server_link); server_link = null; } } }
internal void removeServiceServerLink(IServiceServerLink issl) { if (shutting_down) { return; } lock (service_server_links_mutex) { if (service_server_links.Contains(issl)) { service_server_links.Remove(issl); } } }