• Max Kellermann's avatar
    lib/curl/Request: move exception handling out of the WRITEFUNCTION · 4297a7b0
    Max Kellermann authored
    libcurl's WRITEFUNCTION is pretty fragile; if we destroy the CURL*
    instance or even unregister it using curl_multi_remove_handle(),
    libcurl will crash instantly.  But still we need to be able to handle
    exceptions from inside the WRITEFUNCTION, and call
    CurlResponseHandler::OnError(), which may destroy the whole thing.  As
    a workaround, I use DeferredMonitor to postpone the OnError() call
    into a stack frame which is allowed to destroy the request.
    4297a7b0
Request.hxx 3.84 KB