fix: add cross-platform file locking and background progress thread - #414
Open
jschen069 wants to merge 6 commits into
Open
fix: add cross-platform file locking and background progress thread#414jschen069 wants to merge 6 commits into
jschen069 wants to merge 6 commits into
Conversation
- file.py: Add OS-level file locking (msvcrt on Windows, fcntl on Unix) to prevent race conditions in concurrent JSON status file writes - base.py: Wrap progress monitoring in daemon thread with join to properly handle background task progress tracking
Contributor
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
jschen069
temporarily deployed
to
smoke-test-approval
July 23, 2026 06:59 — with
GitHub Actions
Inactive
jschen069
temporarily deployed
to
smoke-test-approval
July 24, 2026 09:39 — with
GitHub Actions
Inactive
jschen069
temporarily deployed
to
smoke-test-approval
July 24, 2026 10:06 — with
GitHub Actions
Inactive
jschen069
temporarily deployed
to
smoke-test-approval
July 25, 2026 01:15 — with
GitHub Actions
Inactive
| logger = AISLogger() | ||
|
|
||
|
|
||
| import fcntl |
Collaborator
There was a problem hiding this comment.
fcntl 属于 unix 下的 module,如果在 windows 上跑会不会报错?还是说我们不会在 WINDOWS 上跑?
Collaborator
Author
There was a problem hiding this comment.
aisbench不会在windows跑
| @@ -1,3 +1,4 @@ | |||
| import sys | |||
| existing_data = [] | ||
| if os.path.exists(file_path): | ||
| # Ensure the file exists before opening in r+ mode | ||
| if not os.path.exists(file_path): |
Collaborator
There was a problem hiding this comment.
这儿是会被多线程调用?如果两个线程同时调用了这个函数,后面一个线程已经写了一些内容,当第二个线程走到这会导致文件内容被清除?
| try: | ||
| fcntl.lockf(f.fileno(), fcntl.LOCK_UN) | ||
| except IOError: | ||
| pass |
Collaborator
There was a problem hiding this comment.
是不是可以打个 WARNING 日志
jschen069
temporarily deployed
to
smoke-test-approval
July 25, 2026 07:10 — with
GitHub Actions
Inactive
jschen069
temporarily deployed
to
smoke-test-approval
July 25, 2026 07:33 — with
GitHub Actions
Inactive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Thanks for your contribution; we appreciate it a lot. The following instructions will make your pull request healthier and help you get feedback more easily. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
感谢您的贡献,我们非常重视。以下说明将使您的拉取请求更健康,更易于获得反馈。如果您不理解某些项目,请不要担心,只需提交拉取请求并从维护人员那里寻求帮助即可。
PR Type / PR类型
Related Issue | 关联 Issue
Fixes #(issue ID / issue 编号) / Relates to #(issue ID / issue 编号)
🔍 Motivation / 变更动机
Please describe the motivation of this PR and the goal you want to achieve through this PR.


请描述您的拉取请求的动机和您希望通过此拉取请求实现的目标。
添加lock逻辑,保证多线程并发跑数据正确。
📝 Modification / 修改内容
添加lock逻辑,当多线程对tmp_xxxxx.json写入数据时,会存在并发,导致卡死。
Please briefly describe what modification is made in this PR.
请简要描述此拉取请求中进行的修改。
📐 Associated Test Results / 关联测试结果
Please provide links to the related test results, such as CI pipelines, test reports, etc.


请提供相关测试结果的链接,例如 CI 管道、测试报告等。
Does the modification introduce changes that break the backward compatibility of the downstream repositories? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
是否引入了会破坏下游存储库向后兼容性的更改?如果是,请描述它如何破坏兼容性,以及下游项目应该如何修改其代码以保持与此 PR 的兼容性。
If the modification introduces performance degradation, please describe the impact of the performance degradation and the expected performance improvement.
如果引入了性能下降,请描述性能下降的影响和预期的性能改进。
🌟 Use cases (Optional) / 使用案例(可选)
If this PR introduces a new feature, it is better to list some use cases here and update the documentation.
如果此拉取请求引入了新功能,最好在此处列出一些用例并更新文档。
✅ Checklist / 检查列表
Before PR:
After PR:
👥 Collaboration Info / 协作信息
🌟 Useful CI Command / 实用的CI命令
/gemini review/gemini summary/gemini help/readthedocs build