| 
					
				 | 
			
			
				@@ -352,11 +352,11 @@ namespace Grpc.Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!hooksRegistered) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // TODO(jtattermusch): register shutdownhooks for CoreCLR as well 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#if !NETSTANDARD1_5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        AppDomain.CurrentDomain.ProcessExit += ShutdownHookHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        AppDomain.CurrentDomain.DomainUnload += ShutdownHookHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#if NETSTANDARD1_5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        System.Runtime.Loader.AssemblyLoadContext.Default.Unloading += (assemblyLoadContext) => { HandleShutdown(); }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        AppDomain.CurrentDomain.ProcessExit += (sender, eventArgs) => { HandleShutdown(); }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        AppDomain.CurrentDomain.DomainUnload += (sender, eventArgs) => { HandleShutdown(); }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hooksRegistered = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -364,9 +364,9 @@ namespace Grpc.Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /// Handler for AppDomain.DomainUnload and AppDomain.ProcessExit hooks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /// Handler for AppDomain.DomainUnload, AppDomain.ProcessExit and AssemblyLoadContext.Unloading hooks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            private static void ShutdownHookHandler(object sender, EventArgs e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            private static void HandleShutdown() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Task.WaitAll(GrpcEnvironment.ShutdownChannelsAsync(), GrpcEnvironment.KillServersAsync()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 |