You've already forked linux-packaging-mono
							
							Imported Upstream version 5.10.0.47
Former-commit-id: d0813289fa2d35e1f8ed77530acb4fb1df441bc0
This commit is contained in:
		
						parent
						
							88ff76fe28
						
					
				
				
					commit
					e46a49ecf1
				
			| @@ -1182,6 +1182,7 @@ namespace System.IO.Pipes { | ||||
|             // our WaitNamedPipe and CreateFile calls. | ||||
|             int startTime = Environment.TickCount; | ||||
|             int elapsed = 0; | ||||
|             var sw = new SpinWait(); | ||||
|             do { | ||||
|                 // Wait for pipe to become free (this will block unless the pipe does not exist). | ||||
|                 if (!UnsafeNativeMethods.WaitNamedPipe(m_normalizedPipePath, timeout - elapsed)) { | ||||
| @@ -1189,6 +1190,7 @@ namespace System.IO.Pipes { | ||||
|  | ||||
|                     // Server is not yet created so let's keep looping. | ||||
|                     if (errorCode == UnsafeNativeMethods.ERROR_FILE_NOT_FOUND) { | ||||
|                         sw.SpinOnce(); | ||||
|                         continue;  | ||||
|                     } | ||||
|  | ||||
| @@ -1215,6 +1217,7 @@ namespace System.IO.Pipes { | ||||
|                     // Handle the possible race condition of someone else connecting to the server  | ||||
|                     // between our calls to WaitNamedPipe & CreateFile. | ||||
|                     if (errorCode == UnsafeNativeMethods.ERROR_PIPE_BUSY) { | ||||
|                         sw.SpinOnce(); | ||||
|                         continue; | ||||
|                     } | ||||
|  | ||||
| @@ -1284,6 +1287,7 @@ namespace System.IO.Pipes { | ||||
|             // straight away in such cases), and 2) when another client connects to our server in between  | ||||
|             // our WaitNamedPipe and CreateFile calls. | ||||
|             int elapsed = 0; | ||||
|             var sw = new SpinWait(); | ||||
|             do { | ||||
|                 // We want any other exception and and success to have priority over cancellation. | ||||
|                 cancellationToken.ThrowIfCancellationRequested(); | ||||
| @@ -1303,6 +1307,7 @@ namespace System.IO.Pipes { | ||||
|  | ||||
|                     // Server is not yet created so let's keep looping. | ||||
|                     if (errorCode == UnsafeNativeMethods.ERROR_FILE_NOT_FOUND) { | ||||
|                         sw.SpinOnce(); | ||||
|                         continue; | ||||
|                     } | ||||
|  | ||||
| @@ -1311,6 +1316,7 @@ namespace System.IO.Pipes { | ||||
|                         if (cancellationToken.CanBeCanceled) { | ||||
|                             // It may not be real timeout and only checking for cancellation | ||||
|                             // let the while condition check it and decide | ||||
|                             sw.SpinOnce(); | ||||
|                             continue; | ||||
|                         } | ||||
|                         else { | ||||
| @@ -1336,6 +1342,7 @@ namespace System.IO.Pipes { | ||||
|                     // Handle the possible race condition of someone else connecting to the server  | ||||
|                     // between our calls to WaitNamedPipe & CreateFile. | ||||
|                     if (errorCode == UnsafeNativeMethods.ERROR_PIPE_BUSY) { | ||||
|                         sw.SpinOnce(); | ||||
|                         continue; | ||||
|                     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user