[Libreoffice-commits] online.git: Branch 'private/Ashod/nonblocking' - net/clientnb.cpp net/loolnb.cpp
Michael Meeks
michael.meeks at collabora.com
Thu Feb 16 11:52:56 UTC 2017
net/clientnb.cpp | 26 ++++++++++++++++++++++----
net/loolnb.cpp | 4 ++++
2 files changed, 26 insertions(+), 4 deletions(-)
New commits:
commit 1a9941c23fa538f7d0e8e5622169f8186cc6d37f
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Thu Feb 16 11:52:22 2017 +0000
Bang on the server with some threads.
diff --git a/net/clientnb.cpp b/net/clientnb.cpp
index 822804d..aa123e9 100644
--- a/net/clientnb.cpp
+++ b/net/clientnb.cpp
@@ -28,7 +28,6 @@
#include <Poco/Net/KeyConsoleHandler.h>
#include <Poco/Net/AcceptCertificateHandler.h>
#include <Poco/StreamCopier.h>
-#include <Poco/Thread.h>
#include <Poco/URI.h>
#include <Poco/Util/Application.h>
#include <Poco/Util/HelpFormatter.h>
@@ -64,6 +63,11 @@ struct Session
else
_session = new Poco::Net::HTTPClientSession(HostName, PortNumber);
}
+ ~Session()
+ {
+ delete _session;
+ }
+
void sendPing(int i)
{
Poco::Net::HTTPRequest request(
@@ -108,7 +112,7 @@ struct Session
struct ThreadWorker : public Runnable
{
const char *_domain;
- ThreadWorker (const char *domain)
+ ThreadWorker (const char *domain = NULL)
: _domain(domain)
{
}
@@ -116,7 +120,7 @@ struct ThreadWorker : public Runnable
{
for (int i = 0; i < 100; ++i)
{
- Session ping(_domain);
+ Session ping(_domain ? _domain : "init");
ping.sendPing(i);
int back = ping.getResponse();
assert(back == i + 1);
@@ -128,12 +132,25 @@ struct Client : public Poco::Util::Application
{
void testLadder()
{
- ThreadWorker ladder("init");
+ ThreadWorker ladder;
Thread thread;
thread.start(ladder);
thread.join();
}
+ void testParallel()
+ {
+ const int num = 10;
+ Thread snakes[num];
+ ThreadWorker ladders[num];
+
+ for (size_t i = 0; i < num; i++)
+ snakes[i].start(ladders[i]);
+
+ for (int i = 0; i < num; i++)
+ snakes[i].join();
+ }
+
public:
int main(const std::vector<std::string>& /* args */) override
{
@@ -151,6 +168,7 @@ public:
assert (back == count + 2);
testLadder();
+ testParallel();
return 0;
}
diff --git a/net/loolnb.cpp b/net/loolnb.cpp
index 7c4f23f..5c61a78 100644
--- a/net/loolnb.cpp
+++ b/net/loolnb.cpp
@@ -22,6 +22,8 @@
#include <Poco/Net/SocketAddress.h>
#include <Poco/Net/HTTPRequest.h>
#include <Poco/StringTokenizer.h>
+#include <Poco/Runnable.h>
+#include <Poco/Thread.h>
using Poco::MemoryInputStream;
using Poco::StringTokenizer;
@@ -75,6 +77,8 @@ public:
}
};
+// FIXME: use Poco Thread instead (?)
+
/// Generic thread class.
class Thread
{
More information about the Libreoffice-commits
mailing list