summaryrefslogtreecommitdiff
path: root/cpp/lib/common/sys
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/lib/common/sys')
-rw-r--r--cpp/lib/common/sys/Acceptor.h2
-rw-r--r--cpp/lib/common/sys/apr/APRAcceptor.cpp18
2 files changed, 11 insertions, 9 deletions
diff --git a/cpp/lib/common/sys/Acceptor.h b/cpp/lib/common/sys/Acceptor.h
index f571dcbddd..cd4932d92e 100644
--- a/cpp/lib/common/sys/Acceptor.h
+++ b/cpp/lib/common/sys/Acceptor.h
@@ -35,7 +35,7 @@ class Acceptor : public qpid::SharedObject<Acceptor>
public:
static Acceptor::shared_ptr create(int16_t port, int backlog, int threads, bool trace = false);
virtual ~Acceptor() = 0;
- virtual int16_t getPort() const = 0;
+ virtual uint16_t getPort() const = 0;
virtual void run(qpid::sys::ConnectionInputHandlerFactory* factory) = 0;
virtual void shutdown() = 0;
};
diff --git a/cpp/lib/common/sys/apr/APRAcceptor.cpp b/cpp/lib/common/sys/apr/APRAcceptor.cpp
index 52384857ed..a346b9e8dc 100644
--- a/cpp/lib/common/sys/apr/APRAcceptor.cpp
+++ b/cpp/lib/common/sys/apr/APRAcceptor.cpp
@@ -32,7 +32,7 @@ class APRAcceptor : public Acceptor
{
public:
APRAcceptor(int16_t port, int backlog, int threads, bool trace);
- virtual int16_t getPort() const;
+ virtual uint16_t getPort() const;
virtual void run(qpid::sys::ConnectionInputHandlerFactory* factory);
virtual void shutdown();
@@ -70,7 +70,7 @@ APRAcceptor::APRAcceptor(int16_t port_, int backlog, int threads, bool trace_) :
CHECK_APR_SUCCESS(apr_socket_listen(socket, backlog));
}
-int16_t APRAcceptor::getPort() const {
+uint16_t APRAcceptor::getPort() const {
apr_sockaddr_t* address;
CHECK_APR_SUCCESS(apr_socket_addr_get(&address, APR_LOCAL, socket));
return address->port;
@@ -80,9 +80,11 @@ void APRAcceptor::run(ConnectionInputHandlerFactory* factory) {
running = true;
processor.start();
std::cout << "Listening on port " << getPort() << "..." << std::endl;
- while(running){
- apr_socket_t* client;
- apr_status_t status = apr_socket_accept(&client, socket, APRPool::get());
+ while(running) {
+ apr_socket_t* client;
+ printf("== accept pre\n"); // FIXME aconway 2007-03-28:
+ apr_status_t status = apr_socket_accept(&client, socket, APRPool::get());
+ printf("== accept post %d %d\n", status, running); // FIXME aconway 2007-03-28:
if(status == APR_SUCCESS){
//make this socket non-blocking:
CHECK_APR_SUCCESS(apr_socket_timeout_set(client, 0));
@@ -106,16 +108,16 @@ void APRAcceptor::run(ConnectionInputHandlerFactory* factory) {
void APRAcceptor::shutdown() {
Mutex::ScopedLock locker(shutdownLock);
- if (running) {
+ if (running)
shutdownImpl();
- }
}
void APRAcceptor::shutdownImpl() {
- Mutex::ScopedLock locker(shutdownLock);
running = false;
processor.stop();
+ printf("== shutdownImpl pre\n"); // FIXME aconway 2007-03-28:
CHECK_APR_SUCCESS(apr_socket_close(socket));
+ printf("== shutdownImpl post\n");
}