show error when sqlite crashes worker thread
Better than "blocked indefinitely in MVar"..
This commit is contained in:
		
					parent
					
						
							
								99a1287f4f
							
						
					
				
			
			
				commit
				
					
						ea76d04e15
					
				
			
		
					 1 changed files with 3 additions and 1 deletions
				
			
		|  | @ -16,6 +16,7 @@ module Database.Handle ( | |||
| ) where | ||||
| 
 | ||||
| import Utility.Exception | ||||
| import Messages | ||||
| 
 | ||||
| import Database.Persist.Sqlite (runSqlite) | ||||
| import Database.Esqueleto hiding (Key) | ||||
|  | @ -41,8 +42,9 @@ openDb db = do | |||
| 	return $ DbHandle worker jobs t | ||||
| 
 | ||||
| workerThread :: T.Text -> MVar Job -> IO () | ||||
| workerThread db jobs = go | ||||
| workerThread db jobs = catchNonAsync go showerr | ||||
|   where | ||||
|   	showerr e = liftIO $ warningIO $ "sqlite worker thread crashed: " ++ show e | ||||
| 	go = do | ||||
| 		r <- runSqlite db transaction | ||||
| 		case r of | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Joey Hess
				Joey Hess