Thread-Safety: _jobs-Dict wird ohne Lock aus mehreren Threads geschrieben #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem\n\n
server.py:218—_jobswird gleichzeitig aus HTTP-Request-Threads (lesen) und Background-Threads (schreiben via.update()) verändert. Zusammengesetzte Operationen sind durch den GIL nicht atomar.\n\n## Fix\n\nEinthreading.Lock()um alle_jobs-Schreibzugriffe, oder atomare Dict-Einzel-Assigns statt.update({...}):\npython\n_jobs[job_id]["done"] = i + 1 # atomar\n# statt:\n_jobs[job_id].update({"done": i+1, ...}) # nicht atomar\nFixed in commit
69adfe6.