W dniu poniedziałek, 5 czerwca 2017 17:25:00 UTC+2 użytkownik Saúl Ibarra
Corretgé napisał:
>
> I suggest you re-read my suggestion a few emails back. Move handling of
> the entire curl handle to the uv thread with a queue, a muted and an async
> handle.
>
>
> -Saúl
>
Hello Saúl
Thanks for still being here :-)
If I understood correctly, I did something like this:
(inside the thread that should add a downloading request to uv_loop)
synchronized(request_queue_mutex) {
request_queue.data = curl_easy_handle;
uv_queue_work(loop, &request_queue,
[](uv_work_t* req) {},
[](uv_work_t* req, int status) {
LOG(INFO) << "working done: ";
curl_multi_add_handle(curl_handle, (CURL *) req->data);
});
}
but after running 2 simultaneous request my code breaks with:
==18186== Process terminating with default action of signal 6 (SIGABRT):
dumping core
==18186== at 0x687C765: raise (in /usr/lib64/libc-2.23.so)
==18186== by 0x687E482: abort (in /usr/lib64/libc-2.23.so)
==18186== by 0x4B7D52: MagickPanicSignalHandler (magick.c:840)
==18186== by 0x663CC2F: ??? (in /usr/lib64/libpthread-2.23.so)
==18186== by 0xC29997: ???
==18186== by 0x80A30B: uv__work_done (threadpool.c:245)
==18186== by 0x80C0FA: uv__async_io (async.c:118)
==18186== by 0x8161F7: uv__io_poll (linux-core.c:400)
==18186== by 0x80C923: uv_run (core.c:359)
==18186== by 0x41768C: imageresizer::engine::FileDownloader::StartLoop()
(FileDownloader.cpp:103)
==18186== by 0x4199A3: void std::__invoke_impl<void, void
(imageresizer::engine::FileDownloader::* const&)(),
imageresizer::engine::FileDownloader*>(std::__invoke_memfun_deref, void
(imageresizer::engine::FileDownloader::* const&)(),
imageresizer::engine::FileDownloader*&&) (functional:227)
==18186== by 0x419930: std::result_of<void
(imageresizer::engine::FileDownloader::*
const&(imageresizer::engine::FileDownloader*&&))()>::type
std::__invoke<void (imageresizer::engine::FileDownloader::* const&)(),
imageresizer::engine:
:FileDownloader*>(void (imageresizer::engine::FileDownloader::* const&)(),
imageresizer::engine::FileDownloader*&&) (functional:251)
--
regards
Przemysław Sobala
--
You received this message because you are subscribed to the Google Groups
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.