nautilus:wip/p3732/original-dir-hash-table-rework

Last commit made on 2024-05-13
Get this branch:
git clone -b wip/p3732/original-dir-hash-table-rework https://git.launchpad.net/nautilus

Branch merges

Branch information

Name:
wip/p3732/original-dir-hash-table-rework
Repository:
lp:nautilus

Recent commits

3d3f25c... by Peter Eisenmann <email address hidden>

directory-async: emit changed only once for removed callbacks

4366099... by Peter Eisenmann <email address hidden>

directory-async: simplify destroying function

Inline some variables and prevent log spam when multiple pending
call-when-ready callbacks are still around.

21b30ce... by Peter Eisenmann <email address hidden>

directory-async: inline unused preserve data variant

3e8849c... by Peter Eisenmann <email address hidden>

directory-async: simplify idle callback

Use g_autoptr for the directory and only schedule it once.

172f55f... by Peter Eisenmann <email address hidden>

directory-async: reduce hash table updates on ready callbacks

Only update the hash table entries once all unsatifisfied callbacks have
been checked.

d45da98... by Peter Eisenmann <email address hidden>

directory-async: simplify call_ready_callbacks

Scope variables to where they are used, use pointers with short names
for hash tables, improve pointer array naming and improve comment.
(This reduces the diff with the next commit.)

e92ed6a... by Peter Eisenmann <email address hidden>

directory-async: simplify similar callback removal

Use the return value of remove_callback_link() to reduce indention and
thus make the function clearer to read.

0b7664f... by Peter Eisenmann <email address hidden>

directory-async: bulk swap out ready callbacks

Instead of refreshing iterators swap out the whole hash table for a new
empty one. The entries can then be iterated normally and the whole table
be cleaned up after iterating, increasing performance.

Also, return early if no callbacks are actually ready.

6f1f59c... by Khalid Abu Shawarib

directory-async: Use hash tables for ready callbacks

This improves performance with directories that have a large number of
direct descendants.

df88b93... by Khalid Abu Shawarib

directory-async: Use 2 lists for call_when_ready callbacks

Use the words 'unsatisfied' and 'ready' instead of active and
inactive to better describe the two types.