On linux, we can do blocking flock with this method (https://stackoverflow.com/questions/40710549/is-there-a-portable-way-to-put-a-timeout-on-flock) for cancellation.
On windows, we can use LockFileEx in async mode and possibly combine that with cancelioex to cancel the async io operation (not sure if this works). Also since we're doing async IO it's probably not the end of the world to just leave the async task running and have it unlock itself upon completion.
Reactions are currently unavailable
On linux, we can do blocking flock with this method (https://stackoverflow.com/questions/40710549/is-there-a-portable-way-to-put-a-timeout-on-flock) for cancellation.
On windows, we can use LockFileEx in async mode and possibly combine that with cancelioex to cancel the async io operation (not sure if this works). Also since we're doing async IO it's probably not the end of the world to just leave the async task running and have it unlock itself upon completion.