Пример собран по статье на Хабре.
Warning
Автор статьи не рекомендует внедрять пример в рабочих проектах. Используйте только в образовательных целях.
Например, там не используется RAII, там почти нет обработки ошибок, не задаются таймауты, если вы остановите event loop до выполнения всех запросов, то получите утечку памяти, а еще вы можете получить race condition, потому что API CURL не потокобезопасный (например, есть смысл не сразу вызывать curl_multi_add_handle, а добавлять хендлы во временный list, и вызывать для них curl_multi_add_handle уже в потоке event loop'а в его свободное время). Но в нашем случае это все не играет большой роли, поэтому код сделан максимально простым, пусть и не совсем корректным и эффективным.