mirror of
https://github.com/pocoproject/poco.git
synced 2025-11-23 13:32:11 +01:00
add PollSet::has/empty(); ParallelAcceptor: always use same reactor for a socket, if registered
This commit is contained in:
committed by
Alex Fabijanic
parent
f6e6bec32d
commit
df46368413
@@ -51,7 +51,11 @@ void PollSetTest::testPoll()
|
||||
ss2.connect(SocketAddress("127.0.0.1", echoServer2.port()));
|
||||
|
||||
PollSet ps;
|
||||
assertTrue(ps.empty());
|
||||
ps.add(ss1, PollSet::POLL_READ);
|
||||
assertTrue(!ps.empty());
|
||||
assertTrue(ps.has(ss1));
|
||||
assertTrue(!ps.has(ss2));
|
||||
|
||||
// nothing readable
|
||||
Stopwatch sw;
|
||||
@@ -62,6 +66,9 @@ void PollSetTest::testPoll()
|
||||
sw.restart();
|
||||
|
||||
ps.add(ss2, PollSet::POLL_READ);
|
||||
assertTrue(!ps.empty());
|
||||
assertTrue(ps.has(ss1));
|
||||
assertTrue(ps.has(ss2));
|
||||
|
||||
// ss1 must be writable, if polled for
|
||||
ps.update(ss1, PollSet::POLL_READ | PollSet::POLL_WRITE);
|
||||
@@ -100,6 +107,9 @@ void PollSetTest::testPoll()
|
||||
assertTrue (std::string(buffer, n) == "HELLO");
|
||||
|
||||
ps.remove(ss2);
|
||||
assertTrue(!ps.empty());
|
||||
assertTrue(ps.has(ss1));
|
||||
assertTrue(!ps.has(ss2));
|
||||
|
||||
ss2.sendBytes("HELLO", 5);
|
||||
sw.restart();
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace
|
||||
_data += _str.str();
|
||||
_str.str("");
|
||||
if ((_once && _data.size() == 1024) ||
|
||||
(!_once && _data.size() == 4096))
|
||||
(!_once && _data.size() == 8192))
|
||||
{
|
||||
_reactor.stop();
|
||||
delete this;
|
||||
@@ -135,7 +135,7 @@ namespace
|
||||
checkReadableObserverCount(1);
|
||||
_reactor.removeEventHandler(_socket, Observer<ClientServiceHandler, ReadableNotification>(*this, &ClientServiceHandler::onReadable));
|
||||
checkReadableObserverCount(0);
|
||||
if (_once || _data.size() == 4096) _reactor.stop();
|
||||
if (_once || _data.size() == 8192) _reactor.stop();
|
||||
delete this;
|
||||
}
|
||||
}
|
||||
@@ -433,11 +433,16 @@ void SocketReactorTest::testParallelSocketReactor()
|
||||
SocketConnector<ClientServiceHandler> connector2(sa, reactor);
|
||||
SocketConnector<ClientServiceHandler> connector3(sa, reactor);
|
||||
SocketConnector<ClientServiceHandler> connector4(sa, reactor);
|
||||
SocketConnector<ClientServiceHandler> connector5(sa, reactor);
|
||||
SocketConnector<ClientServiceHandler> connector6(sa, reactor);
|
||||
SocketConnector<ClientServiceHandler> connector7(sa, reactor);
|
||||
SocketConnector<ClientServiceHandler> connector8(sa, reactor);
|
||||
ClientServiceHandler::setOnce(false);
|
||||
ClientServiceHandler::resetData();
|
||||
reactor.run();
|
||||
//acceptor.run();
|
||||
std::string data(ClientServiceHandler::data());
|
||||
assertTrue (data.size() == 4096);
|
||||
assertTrue (data.size() == 8192);
|
||||
assertTrue (!ClientServiceHandler::readableError());
|
||||
assertTrue (!ClientServiceHandler::writableError());
|
||||
assertTrue (!ClientServiceHandler::timeoutError());
|
||||
|
||||
Reference in New Issue
Block a user