From 1bb141cd4f23e28856a5cf60432e6599e9287a4e Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 9 Jun 2023 13:41:35 +1000 Subject: [PATCH] Use event:on-idle for short-timeout background tasks. Background tasks like linecount, spell check, and make parsing now use the background queue of event:on-idle Signed-off-by: NeilBrown --- lib-linecount.c | 7 +- python/lib-autospell.py | 2 +- python/lib-make.py | 2 +- python/lib-mergeview.py | 2 +- tests.d/02-grep | 153 ++++++++++++++++++++-------------------- 5 files changed, 82 insertions(+), 84 deletions(-) diff --git a/lib-linecount.c b/lib-linecount.c index 1120d50f..8ebc98a5 100644 --- a/lib-linecount.c +++ b/lib-linecount.c @@ -39,7 +39,6 @@ static struct map *linecount_map; DEF_LOOKUP_CMD(handle_count_lines, linecount_map); static const int batch_marks = 1; -static const int batch_timer = 20; static bool testing = False; struct count_info { @@ -229,7 +228,7 @@ static void count_calculate(struct pane *p safe, call("doc:set-ref", p, 1, m); do_count(p, owner, m, vmark_next(m), &l, &w, &c, sync ? -1 : batch_marks); if (!sync) { - call_comm("event:timer", p, &linecount_restart, batch_timer, end); + call_comm("event:on-idle", p, &linecount_restart); return; } } @@ -238,7 +237,7 @@ static void count_calculate(struct pane *p safe, /* need to update this one */ do_count(p, owner, m, vmark_next(m), &l, &w, &c, sync ? -1 : batch_marks); if (!sync) { - call_comm("event:timer", p, &linecount_restart, batch_timer, end); + call_comm("event:on-idle", p, &linecount_restart); return; } } @@ -256,7 +255,7 @@ static void count_calculate(struct pane *p safe, continue; do_count(p, owner, m, vmark_next(m), &l, &w, &c, sync ? -1 : batch_marks); if (!sync) { - call_comm("event:timer", p, &linecount_restart, batch_timer, end); + call_comm("event:on-idle", p, &linecount_restart); return; } } diff --git a/python/lib-autospell.py b/python/lib-autospell.py index 02310873..def56152 100644 --- a/python/lib-autospell.py +++ b/python/lib-autospell.py @@ -261,7 +261,7 @@ class autospell_view(edlib.Pane): def sched(self): if not self.scheduled: self.scheduled = True - self.call("event:timer", 10, self.rescan) + self.call("event:on-idle", self.rescan) def rescan(self, key, focus, **a): self.scheduled = False diff --git a/python/lib-make.py b/python/lib-make.py index e09ef681..e8e2e19a 100644 --- a/python/lib-make.py +++ b/python/lib-make.py @@ -139,7 +139,7 @@ class MakePane(edlib.Pane): # there are more matches - we aborted early. # set a timer if not self.timer_set: - self.call("event:timer", 10, self.tick) + self.call("event:on-idle", self.tick) self.timer_set = True return diff --git a/python/lib-mergeview.py b/python/lib-mergeview.py index 01518445..cd21a860 100644 --- a/python/lib-mergeview.py +++ b/python/lib-mergeview.py @@ -136,7 +136,7 @@ class MergePane(edlib.Pane): if ((mark and mark >= self.marks[0] and mark <= self.marks[3]) or (mark2 and mark2 >= self.marks[0] and mark2 <= self.marks[3])): # Update the highlight - self.call("event:timer", 10, self.remark) + self.call("event:on-idle", self.remark) return 0 def handle_highlight(self, key, focus, str, str2, mark, comm2, **a): diff --git a/tests.d/02-grep b/tests.d/02-grep index 52646557..bb8f8d64 100644 --- a/tests.d/02-grep +++ b/tests.d/02-grep @@ -67,7 +67,6 @@ Key ":Enter" Display 80,30 D3AEBB90EB2C5DB570D9301483F30022 11,10 Display 80,30 391E94BF2DF2C9604528D0F3DDECB343 11,10 Key ":Enter" -Display 80,30 20A6C2316EA6C6F2C837ED7BF0790C8D 1,1 Display 80,30 E3ACF4433B7F90BDF1A870808B398A70 1,1 Key ":C-X" Display 80,30 6480624A6FD9BE7C74F17BA5F093F3AD 1,1 @@ -91,155 +90,155 @@ Display 80,30 F3D5D6A5E0A5D5975ECB6E7F00917039 1,6 Key ":C-X" Display 80,30 2D8E0ECD65429DDDA3F1C8A49A73E1D8 1,6 Key "-`" -Display 80,30 1A4BDA70365FA2BE77204B4D3C5A71FD 1,1 Key "-`" -Display 80,30 6488347D7F4C458D0C4DB4DD9EDB8DA5 1,7 +Display 80,30 32B8C274684ECFBE16F97E20FB5BA94E 1,6 Key "-`" -Display 80,30 69AD76906A155260B345D2BA411F3921 1,6 +Display 80,30 C8582801EA4EB730362C8E28C7408B33 1,6 Key "-`" -Display 80,30 047048FF34AD3B5A3C889C79BEC80EAB 1,7 +Display 80,30 AC1DE4A9739FFCEFD87C066C2BAE7B8A 1,7 Key "-`" -Display 80,30 2D5FBF9D6847197E8686AE154C0CA6B2 1,6 +Display 80,30 1A236C860DE13BBBC446C143CAF21813 1,6 Key "-`" -Display 80,30 14302278E63F297EDCB931F482E34BDE 1,7 +Display 80,30 28F045FE67ADE62B92F3A4E02A295234 1,7 Key "-`" -Display 80,30 BCB642A843697EAC24C93E65BD548B2D 1,9 +Display 80,30 5A3D99C44BCE3F01AF08C0ABA187E8F8 1,9 Key ":A--" -Display 80,30 7A911AEF593FC17E29D5B1B39B19D154 1,9 +Display 80,30 23588A716A8C327CA5BB29B0F391EB58 1,9 Key ":C-X" -Display 80,30 01EC2055C21E211A34F4A0EEB1C00AC9 1,9 +Display 80,30 6821203991872E2268CE855FB748B630 1,9 Key "-`" -Display 80,30 BCB642A843697EAC24C93E65BD548B2D 1,9 +Display 80,30 5A3D99C44BCE3F01AF08C0ABA187E8F8 1,9 Key "-`" -Display 80,30 14302278E63F297EDCB931F482E34BDE 1,7 +Display 80,30 28F045FE67ADE62B92F3A4E02A295234 1,7 Key "-`" -Display 80,30 2D5FBF9D6847197E8686AE154C0CA6B2 1,6 +Display 80,30 1A236C860DE13BBBC446C143CAF21813 1,6 Key ":C-X" -Display 80,30 77F1C291B9214AE59842D4BD18F6A05F 1,6 +Display 80,30 8710264955CE9B1E9FDE8137F8435A4F 1,6 Key ":C-F" -Display 80,30 F3637D045FF6732253B486CC7883A246 53,13 +Display 80,30 DBA2B846C5C860189F3114FE8BB142E4 53,13 Key ":Backspace" -Display 80,30 98FD00AFA4EFC281DF9715393A93ADC7 52,13 +Display 80,30 C6B5347BA4327D67DC7EC3B26A8B4EF7 52,13 Key ":Backspace" -Display 80,30 F7750F7D0659BE45E282941A246AFAF3 51,13 +Display 80,30 6E963B2A178332C7B5D80279877C7871 51,13 Key ":Backspace" -Display 80,30 4364A3294D6A3471B95CB3A113454F54 50,13 +Display 80,30 B5EE8AE3A1BBFA36802CD0B670E84F9D 50,13 Key ":Backspace" -Display 80,30 46A7E817BE400A7F3CD2486AB300B16D 49,13 +Display 80,30 B142D1A1D170D5D6506A61D99E52CFBD 49,13 Key ":Enter" -Display 80,30 1FA08B9B5E70EDCDE48B0B6BBB8FBB79 1,1 +Display 80,30 678073B7E2D6498897D2141A702749A9 1,1 Key ":A-x" -Display 80,30 8370E0437143A51ECAB53E987B3972E7 26,13 +Display 80,30 63BD65CF4A1014BF11A46ABAC65F8BCB 26,13 Key "-g" -Display 80,30 050CEDF383F85C2413359BA4E7A2F819 27,13 +Display 80,30 FCAF4417B93F21D2CDB011449DF7E633 27,13 Key "-r" -Display 80,30 B4E5C193721248E76230055549ADB668 28,13 +Display 80,30 2F1F28BCCC2B7B5B3B422C0CDD5F5A1B 28,13 Key "-e" -Display 80,30 F1CF206B833E6F6C26C0F87AD667CAC0 29,13 +Display 80,30 B2E301F252ED1736A3D337E83A81340C 29,13 Key "-p" -Display 80,30 0685B5C7961702A2D2E058CE75D5ED0B 30,13 +Display 80,30 BC1E18204CF62D6EFF077F081B05EFDF 30,13 Key ":Enter" -Display 80,30 1C22072D61E586F2EA599941BC9E796A 44,13 +Display 80,30 F912C83B2EE0512B21D74F2632B8FA27 44,13 Key "-w" -Display 80,30 B0B4EDB23E516BB7901E4636D8DA6F7C 45,13 +Display 80,30 EA67F912AE375127550185F66CE97AAE 45,13 Key "-i" -Display 80,30 95199C6743E0192C6E669B603740E19F 46,13 +Display 80,30 61180B6E963D02141E74C3914AF74BC4 46,13 Key "-n" -Display 80,30 53D880F9CDD6641034EB717F0EB8CCE1 47,13 +Display 80,30 31C3989BCEFFE7A84C25BCD6D28AD5C9 47,13 Key "-d" -Display 80,30 D483FDE9B051E04B4224857EDFC1907D 48,13 +Display 80,30 B8A658D063BB0E764156DB82AB762782 48,13 Key "-o" -Display 80,30 CF0841AC5E74686D1058832ED4FA139F 49,13 +Display 80,30 042AFB18CE9FAC56956F333685B9329B 49,13 Key "-w" -Display 80,30 F6D9600853632ADB6085BA2A54E916CB 50,13 +Display 80,30 A74538D855898C46176FE2C156ED89BD 50,13 Key "- " -Display 80,30 F6D9600853632ADB6085BA2A54E916CB 51,13 +Display 80,30 A74538D855898C46176FE2C156ED89BD 51,13 Key "-*" -Display 80,30 0E971777339A03E376C63FE3B869CC85 52,13 +Display 80,30 69335A789417F993D4F693FB50EEBD11 52,13 Key "-." -Display 80,30 A6DA3028E11B907B44B618AF70E8E270 53,13 +Display 80,30 2FF9DED76B5F73D37E79E08B4B834A59 53,13 Key "-c" -Display 80,30 164CE291663AC22726B5E660E738F778 54,13 +Display 80,30 B60824119AC14B600381AE65B3F0D36F 54,13 Key ":Enter" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 E0CF7842C239D4F1B767726A581CCD12 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,10 Key ":C-N" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,11 Key ":C-N" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,12 Key ":C-N" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,13 Key ":C-N" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,14 Key ":C-N" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,15 Key ":C-N" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 6D650DA7FA9891EDF494C0F33109EF3F 11,16 Key "-f" -Display 80,30 23FE11BBE7E97845B0F678F12ACF486B 11,10 +Display 80,30 AB439C1CD1B91E124A381A60F059DAB8 11,12 Key ":C-V" -Display 80,30 C978E543942769649E32F496895E0D4F 11,10 +Display 80,30 8BEE39C6CDC531741A0B72B6521C6507 11,7 Key ":C-V" +Display 80,30 56994BE2F6BF9B3415DEE4E4653013C3 11,7 Key ":C-V" -Display 80,30 E3E86ACB1350469620DA7A624537F680 11,10 +Display 80,30 09AE55CE847B5920D5F628C17BB51E0D 11,7 Key ":A-B" -Display 80,30 1FA08B9B5E70EDCDE48B0B6BBB8FBB79 1,1 +Display 80,30 678073B7E2D6498897D2141A702749A9 1,1 Key ":C-X" -Display 80,30 0AE046CA7C250270DBE14564AFC5D6B1 1,1 -Key "-`" -Display 80,30 280F34459E38D67B0C1BC57349183FA7 1,6 -Display 80,30 DF026DBC4E8B692B626AB5D9364E8DD1 1,6 +Display 80,30 881A0D99BF84CDFC4916F1BBFEDB62FD 1,1 Key "-`" Display 80,30 8557455273011DFCCAB6707018F20080 1,6 Key "-`" Display 80,30 9554D9EB1BFDBAB109AD1EB8A52410F0 1,6 +Key "-`" +Display 80,30 87AE6B35ED6379123760062801456E69 1,6 Key ":C-X" -Display 80,30 4E72B73729256152BD65FE9E1B4A4A8E 1,6 +Display 80,30 1B93FE4A0F3F6D0DA9A9A7767239F356 1,6 Key "-o" -Display 80,30 760825F4C71D0AD80D4D5D4E8820E9B6 1,22 +Display 80,30 85E3F3D05E6AE32A75F5507046C60D2A 1,23 Key ":A->" -Display 80,30 E4CDCF8E92A7F9AD3E7CB147AC8CCC13 1,26 +Display 80,30 B35B162F53BEF8C7135A98051B958734 1,26 Key ":C-P" -Display 80,30 DD0FEDA3AF8AED4A558FE3FDADC678EA 1,25 +Display 80,30 7925CE062643E313595FE2F44E97A706 1,25 Key ":C-P" -Display 80,30 E9E0DADADE377130A62D220DA8AA8008 1,24 +Display 80,30 D43720011DD395B921DA9A446754476F 1,24 Key ":C-P" -Display 80,30 C389ED19D3ACC8BBDE69C5E6FE6B8C65 1,22 +Display 80,30 01D68268D2AF1CC76E84C1BB6A4E88F3 1,22 Key ":C-P" -Display 80,30 8308A863257D15FF6CFD47092F8A35EA 1,20 +Display 80,30 95C3C9FA07AB43B13A7700E8BA892129 1,20 Key ":C-P" -Display 80,30 EDC182DFDB40396F65D8043016D7FC19 1,18 +Display 80,30 829BA65CDA14FECF508F5EEF56053993 1,18 Key ":Enter" -Display 80,30 1E04940AC09DC8BC618D5E2CC38728B7 1,6 +Display 80,30 158562A0BD3906C8A356AFCCF8CFF418 1,6 Key ":C-X" -Display 80,30 A93A90E6474101A7820B771D5B791CB5 1,6 +Display 80,30 3B1975D517BE71FA5D8846D4B8ACFD00 1,6 Key "-`" -Display 80,30 AE838B5AC19AB30A861A536232DF7550 1,6 +Display 80,30 1D0ECC4EEEB7CA4E0A2B6C80CE787EE9 1,7 Key "-`" -Display 80,30 4E249F9437337F180213FDA03042636D 1,6 +Display 80,30 F5AA3022E69EE65627109416A4153F8C 1,6 Key "-`" -Display 80,30 19BB941588C3D1B758A056460DE1976C 1,6 +Display 80,30 0038D3EA200706CBE2B8F7E35E0247D6 1,7 Key ":C-X" -Display 80,30 A2481BECD4D452D469F6807FBF07651A 1,6 +Display 80,30 DD0B850460093327B7F2F877E46EA378 1,7 Key "-`" -Display 80,30 5D341DFB17A2E948B94761517ED616C9 1,6 +Display 80,30 9BFCD6FB7DDEEB9FF736EEE48A983DF2 1,6 Key "-`" -Display 80,30 71C4407673FCB6E72FF896A80D6FE28F 1,8 +Display 80,30 5BC5B368B3E25A73BE8F8D595D61AEE6 1,6 Key "-`" -Display 80,30 62FAFC892B77DBBE87F1F6474428288C 1,6 +Display 80,30 3A381382535261F222BA0E5DC190CC2A 1,6 Key ":A-0" -Display 80,30 24D06B5BDB1156C448BB2C834EBFEB0D 1,6 +Display 80,30 39B33778D79D98A2B192BD7E2CF1D965 1,6 Key ":C-X" -Display 80,30 21E6552D05C66759463998F9131CA4AE 1,6 +Display 80,30 54671D08555CC4B9B55C3E6FA019584F 1,6 Key "-`" -Display 80,30 1A4BDA70365FA2BE77204B4D3C5A71FD 1,1 +Display 80,30 DF026DBC4E8B692B626AB5D9364E8DD1 1,6 Key "-`" -Display 80,30 6488347D7F4C458D0C4DB4DD9EDB8DA5 1,7 +Display 80,30 8557455273011DFCCAB6707018F20080 1,6 Key "-`" -Display 80,30 69AD76906A155260B345D2BA411F3921 1,6 +Display 80,30 9554D9EB1BFDBAB109AD1EB8A52410F0 1,6 Key "-`" -Display 80,30 047048FF34AD3B5A3C889C79BEC80EAB 1,7 +Display 80,30 87AE6B35ED6379123760062801456E69 1,6 Key ":C-X" -Display 80,30 30F547D164082EB43DE8E55407DF0C7F 1,7 +Display 80,30 1B93FE4A0F3F6D0DA9A9A7767239F356 1,6 Key ":C-C" -Display 80,30 E813481BF8DDB7790724A5B30D2CE6CA 1,7 -Close 819 +Display 80,30 85E3F3D05E6AE32A75F5507046C60D2A 1,6 +Close 900 -- 2.39.5