| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -40,8 +40,6 @@ class Coroutine<T>( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private var timeMillis: Long? = null | 
					 | 
					 | 
					 | 
					    private var timeMillis: Long? = null | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private var errorReturn: Result<T>? = null | 
					 | 
					 | 
					 | 
					    private var errorReturn: Result<T>? = null | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private var isCancelCalled = false | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    val isCancelled: Boolean | 
					 | 
					 | 
					 | 
					    val isCancelled: Boolean | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        get() = job.isCancelled | 
					 | 
					 | 
					 | 
					        get() = job.isCancelled | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -116,8 +114,7 @@ class Coroutine<T>( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    //取消当前任务 | 
					 | 
					 | 
					 | 
					    //取消当前任务 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fun cancel(cause: CancellationException? = null) { | 
					 | 
					 | 
					 | 
					    fun cancel(cause: ActivelyCancelException = ActivelyCancelException()) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        isCancelCalled = true | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        job.cancel(cause) | 
					 | 
					 | 
					 | 
					        job.cancel(cause) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        cancel?.let { | 
					 | 
					 | 
					 | 
					        cancel?.let { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            MainScope().launch { | 
					 | 
					 | 
					 | 
					            MainScope().launch { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -149,7 +146,7 @@ class Coroutine<T>( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                success?.let { dispatchCallback(this, value, it) } | 
					 | 
					 | 
					 | 
					                success?.let { dispatchCallback(this, value, it) } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            } catch (e: Throwable) { | 
					 | 
					 | 
					 | 
					            } catch (e: Throwable) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                e.printOnDebug() | 
					 | 
					 | 
					 | 
					                e.printOnDebug() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (e is CancellationException && !isCancelCalled) this@Coroutine.cancel() | 
					 | 
					 | 
					 | 
					                if (e is ActivelyCancelException) this@Coroutine.cancel() | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (e is CancellationException && e !is TimeoutCancellationException) { | 
					 | 
					 | 
					 | 
					                if (e is CancellationException && e !is TimeoutCancellationException) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    return@launch | 
					 | 
					 | 
					 | 
					                    return@launch | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                } | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |