bitsets are cool.

My favourite addition to curl this year, by far. We use them to track and iterate over thousands of transfers.

They are very cheap (memory and cpu) and great for cache locality. Also, they can be iterated over safely while being modified.

The latest addition is the „dirty“ set: transfers that need to run without external triggers like a socket event or timers.

A bitset for 1000 transfers has a 125 bytes array memory footprint.

github.com/curl/curl/pull/1766

0

If you have a fediverse account, you can quote this note from your own instance. Search https://chaos.social/users/icing/statuses/114708731003132987 on your instance and quote it. (Note that quoting is not supported in Mastodon.)