]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/resolve.cpp
Improve error handling
[libs/net.git] / source / net / resolve.cpp
index 10e8c656797fedfdd685b2edb48ad5f20a217996..006f210d777eb2aa38d7e5df91ecc1c25ca20c0d 100644 (file)
@@ -132,7 +132,16 @@ void Resolver::task_done()
                if(task->addr)
                        signal_address_resolved.emit(task->tag, *task->addr);
                else if(task->error)
+               {
+                       if(signal_resolve_failed.empty())
+                       {
+                               RefPtr<runtime_error> err = task->error;
+                               task->error = 0;
+                               thread.pop_complete_task();
+                               throw *err;
+                       }
                        signal_resolve_failed.emit(task->tag, *task->error);
+               }
                thread.pop_complete_task();
        }
 }