mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-05 06:10:28 +01:00
util/fossilize_db: Be conservative about header length check for locking.
Don't anticipate seeing any partial written headers but just in case we should probably wait on the lock to make sure whatever header was being written is finished being written. Fixes:4f0f8133a3"util/fossilize_db: Do not lock the fossilize db permanently." Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12204> (cherry picked from commit96bfefe8d1)
This commit is contained in:
parent
b2d326fba1
commit
8441124d0b
2 changed files with 4 additions and 3 deletions
|
|
@ -598,7 +598,7 @@
|
|||
"description": "util/fossilize_db: Be conservative about header length check for locking.",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "4f0f8133a35ec2fec8d99936cd7425e40d092169"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -203,8 +203,9 @@ load_foz_dbs(struct foz_db *foz_db, FILE *db_idx, uint8_t file_idx,
|
|||
size_t len = ftell(db_idx);
|
||||
rewind(db_idx);
|
||||
|
||||
/* Try not to take the lock if len > 0, but if it is 0 we take the lock to initialize the files. */
|
||||
if (len == 0) {
|
||||
/* Try not to take the lock if len >= the size of the header, but if it is smaller we take the
|
||||
* lock to potentially initialize the files. */
|
||||
if (len < sizeof(stream_reference_magic_and_version)) {
|
||||
/* Wait for 100 ms in case of contention, after that we prioritize getting the app started. */
|
||||
int err = lock_file_with_timeout(foz_db->file[file_idx], 100000000);
|
||||
if (err == -1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue