feat(gui): instance unique + mutex partagé installeur (P0-7)
Protection multi-instance GUI V6 : mutex kernel nommé sur Windows (partagé avec l'installeur Inno via AppMutex), fcntl exclusif sur POSIX (dev/test). 3 tests unitaires, self-test OK, 0 régression gui_v6 (145 passed). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -62,9 +62,24 @@ def main(argv=None) -> int:
|
||||
setup_file_logging()
|
||||
|
||||
from gui_v6.app import AnonymisationApp
|
||||
from gui_v6.single_instance import AlreadyRunningError, SingleInstance
|
||||
|
||||
application = AnonymisationApp()
|
||||
application.mainloop()
|
||||
guard = SingleInstance()
|
||||
try:
|
||||
guard.acquire()
|
||||
except AlreadyRunningError:
|
||||
try:
|
||||
import tkinter.messagebox as mb
|
||||
|
||||
mb.showinfo("Anonymisation", "L'application est déjà ouverte.")
|
||||
except Exception:
|
||||
print("L'application est déjà ouverte.")
|
||||
return 0
|
||||
try:
|
||||
application = AnonymisationApp()
|
||||
application.mainloop()
|
||||
finally:
|
||||
guard.release()
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user