mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-09-02 09:03:58 +00:00
PUT verified original_schedule outside the lock, so a concurrent delete between the check and the write resurrected the entry as a new one, and two concurrent renames of the same original left both results present. The existence check now runs inside _save_scheduled_message_locked against the same snapshot the duplicate check uses, so create, update and delete are each a single critical section. Added a concurrency test: two simultaneous creates of one schedule now produce exactly one 200 and one 409 with a single entry on disk.