]> matita.cs.unibo.it Git - helm.git/commit
Worker thread killing fixed
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 30 Dec 2022 21:27:33 +0000 (22:27 +0100)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 14 Feb 2023 14:22:46 +0000 (15:22 +0100)
commit66be8fbe19e2ccfa0e6a7abeba605152d1322595
treeff644b28c69ab9808cf0241f0a8d78d7cd6c6669
parentd2d9b78c982fffbc4df22c0a4a13cb0d845e321c
Worker thread killing fixed

In old Ocaml it used to work catching a Unix signal that was raised at the
end of each timeslice. It works no more in Ocaml5.

- we now use a fixed timer (every 1s) to trigger the Unix signal
- the signal is usually caught by the non-worker thread and for some reason
  blocking the signal interferes with Gtk
- solution: if the signal is caught by the non-worker thread, the thread
  goes to sleep for 3s to let the worker thread catch the signal

Most of the time the trick works, even if some delay is introdued.
matita/matita/matitaGui.ml