Preferences - Configure Paths settings not saved when made in a secondary session
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Unknown
|
Bug Description
When having two KiCad sessions open at the same time, and changes are made to the "Preferences - Configure Paths" (tested with footprints path), in the second session, they mess up library access after having closed and re-opened the applications. When using the first session afterwards for example, the libraries still show up in the "footprint editor" (I guess it's just populating the list from the fp-lib-table), however, there are no more footprints inside the libraries.
Is KiCad written in a way that it can have sessions running in parallel on the same computer, or do we have to limit its usage to only one pcb-project at a time ?
Application: kicad
Version: (5.1.0-0), release build
Libraries:
wxWidgets 3.0.4
libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Platform: Mac OS X (Darwin 17.7.0 x86_64), 64 bit, Little endian, wxMac
Build Info:
wxWidgets: 3.0.4 (UTF-8,STL containers,
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.51.0
Compiler: Clang 8.0.0 with C++ ABI 1002
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
Changed in kicad: | |
milestone: | none → 5.1.2 |
Changed in kicad: | |
importance: | Undecided → Wishlist |
status: | New → Triaged |
Changed in kicad: | |
importance: | Wishlist → Unknown |
status: | Expired → Fix Released |
This is an annoying thing that has existed for a while.
KiCad reads and writes to the config files (mostly?) at shutdown. This means that:
* The last session to close "wins", prior sessions to close have their configs overwritten
* Other sessions do not notice config changes, and if they are restarted, they wipe out the changes made by others
* If KiCad crashes, you lose config changes in that session
I suppose you could watch the config files with inotify or similar and react to changes "live".
You could also save a session key into the config on read and then remove it on write - other sessions that start in the meantime can then warn that they're about to overwrite. If the user wants this, the overwriting session updates the key to its own, and when the original session goes to write it can also prompt to overwrite or not.