Open
Description
There is a lack of synchronization in the implementation. The solution may not be simply global mutexes, since ideally you'd only lock the resource in use (e.g., the specific recipe, note, image, etc). For things that utilize the database and use transactions, this is probably mostly handled, but there are other case.
E.g., there could be 2 simultaneous calls to "OptimizeImage", which could result in unexpected behavior since one could be writing the file while another is reading. This is only 1 example.