On Sat, Aug 23, 2025 at 06:24:57PM -0800, Johannes Sixt wrote: > Am 23.08.25 um 15:22 schrieb Carlo Marcelo Arenas Belón via GitGitGadget: > > The first patch does the minimum changes required to swap the underlying > > function, but introduce a race condition that is addressed in the second > > patch. > > > > A third patch that does further changes to the Windows compatibility layer > > was punted. > > > > Carlo Marcelo Arenas Belón (2): progress: replace setitimer() with alarm() > > progress: add a shutting down state to the SIGALRM handler > > > After having looked at the progress code for a bit, see this: > > We use SIGALRM to raise a flag that tells the progress code to act in > some way. The progress code does not act asynchronously, but only when > there is an opportunity to look at the flag, i.e., it acts synchronously > in response to a third party (SIGALRM) that told it that it's time to > act. > > But we can change the progress code to do the time keeping itself. > Instead of looking whether a flag was raised, we can let it look at the > wall clock and check whether an interval has elapsed. This is an even better approach indeed, and will lead to an even nicer cleanup in the Windows emulation code. > A prototype implementation looks like the patch below. It works quite > well for `git clone` on Linux. I have even lowered the interval to 1/8th > of a second to get more frequent updates. After a change like this, we > can remove all the creepy SIGALRM/alarm/setitimer stuff. Would you mind cleaning it up and making it a patch I could rebase on?, or would you rather finish it off, since you also know the Windows parts better? Carlo