ecore_con/efl_net - dedicated threads for network i/o not from the pool
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 3 Feb 2017 05:57:49 +0000 (14:57 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 3 Feb 2017 05:57:49 +0000 (14:57 +0900)
commiteab798c753e72eece526ceccf3c9beb441b5f5ff
tree0c5694dbddc17f342155d96544523f78fffec494
parent9c3df02c4183974013a7d515740911341414f708
ecore_con/efl_net - dedicated threads for network i/o not from the pool

so ecore_con/efl_net were using the standard ecore_thread thread pool
for doing things like dns lookups (that can take multiple minutes
until timeouts) and actual http transactions. similarly they can block
thread workers for long periods or indefinitely thus basically
blocking the whole eocre_thread pool and stopping others from sharing
it. the best solution we have right now is to bypass the thread pool
queue and have dedicated threads for these actions. what we should
have is a dedicated thread pool with each thread taking on N
connections (via select etc.) and the ability to create and destroy
thread pools for specific tasks so you can separate the work out from
other work.  but that is basically a redesign of our thread pool infra
so let's do the quick solution here until that day comes.

this partially addresses D4640

a dedicated thread per image load though is going to be a lot nastier...
src/lib/ecore_con/ecore_con.c
src/lib/ecore_con/efl_net_dialer_http.c