mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 23:12:25 -05:00 
			
		
		
		
	[chore] Upgrade ncruces/go-sqlite3 to v0.18.1 (#3253)
Contains a fix for locking behaviour on the BSDs.
This commit is contained in:
		
					parent
					
						
							
								cd93a5baf3
							
						
					
				
			
			
				commit
				
					
						1e0c858a05
					
				
			
		
					 5 changed files with 29 additions and 5 deletions
				
			
		
							
								
								
									
										14
									
								
								vendor/github.com/ncruces/go-sqlite3/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/ncruces/go-sqlite3/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,6 +12,20 @@ It wraps a [Wasm](https://webassembly.org/) [build](embed/) of SQLite, | |||
| and uses [wazero](https://wazero.io/) as the runtime.\ | ||||
| Go, wazero and [`x/sys`](https://pkg.go.dev/golang.org/x/sys) are the _only_ runtime dependencies [^1]. | ||||
| 
 | ||||
| ### Getting started | ||||
| 
 | ||||
| Using the [`database/sql`](https://pkg.go.dev/database/sql) driver: | ||||
| ```go | ||||
| 
 | ||||
| import "database/sql" | ||||
| import _ "github.com/ncruces/go-sqlite3/driver" | ||||
| import _ "github.com/ncruces/go-sqlite3/embed" | ||||
| 
 | ||||
| var version string | ||||
| db, _ := sql.Open("sqlite3", "file:demo.db") | ||||
| db.QueryRow(`SELECT sqlite_version()`).Scan(&version) | ||||
| ``` | ||||
| 
 | ||||
| ### Packages | ||||
| 
 | ||||
| - [`github.com/ncruces/go-sqlite3`](https://pkg.go.dev/github.com/ncruces/go-sqlite3) | ||||
|  |  | |||
							
								
								
									
										12
									
								
								vendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -121,8 +121,8 @@ func (s *vfsShm) shmOpen() (rc _ErrorCode) { | |||
| 	// Find a shared file, increase the reference count. | ||||
| 	for _, g := range vfsShmFiles { | ||||
| 		if g != nil && os.SameFile(fi, g.info) { | ||||
| 			g.refs++ | ||||
| 			s.vfsShmFile = g | ||||
| 			g.refs++ | ||||
| 			return _OK | ||||
| 		} | ||||
| 	} | ||||
|  | @ -207,15 +207,22 @@ func (s *vfsShm) shmLock(offset, n int32, flags _ShmFlag) _ErrorCode { | |||
| 	case flags&_SHM_UNLOCK != 0: | ||||
| 		for i := offset; i < offset+n; i++ { | ||||
| 			if s.lock[i] { | ||||
| 				if s.vfsShmFile.lock[i] == 0 { | ||||
| 					panic(util.AssertErr()) | ||||
| 				} | ||||
| 				if s.vfsShmFile.lock[i] <= 0 { | ||||
| 					s.vfsShmFile.lock[i] = 0 | ||||
| 				} else { | ||||
| 					s.vfsShmFile.lock[i]-- | ||||
| 				} | ||||
| 				s.lock[i] = false | ||||
| 			} | ||||
| 		} | ||||
| 	case flags&_SHM_SHARED != 0: | ||||
| 		for i := offset; i < offset+n; i++ { | ||||
| 			if s.lock[i] { | ||||
| 				panic(util.AssertErr()) | ||||
| 			} | ||||
| 			if s.vfsShmFile.lock[i] < 0 { | ||||
| 				return _BUSY | ||||
| 			} | ||||
|  | @ -226,6 +233,9 @@ func (s *vfsShm) shmLock(offset, n int32, flags _ShmFlag) _ErrorCode { | |||
| 		} | ||||
| 	case flags&_SHM_EXCLUSIVE != 0: | ||||
| 		for i := offset; i < offset+n; i++ { | ||||
| 			if s.lock[i] { | ||||
| 				panic(util.AssertErr()) | ||||
| 			} | ||||
| 			if s.vfsShmFile.lock[i] != 0 { | ||||
| 				return _BUSY | ||||
| 			} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue