summaryrefslogtreecommitdiff
path: root/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp')
-rw-r--r--examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp b/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
index 1bbfc522da7..85020d78bfc 100644
--- a/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
+++ b/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
@@ -32,10 +32,12 @@ Reactor_Logging_Server_Adapter<ACCEPTOR>::init (int argc,
return server_ == 0 ? -1 : 0;
}
-
+// NOTE! The (ACCEPTOR*) cast below is NOT technically necessary, but it
+// works around a bug in IBM XL C++ 9 that resolves to the wrong version of
+// handle_close().
template <class ACCEPTOR> int
-Reactor_Logging_Server_Adapter<ACCEPTOR>::fini ()
-{ server_->handle_close (); server_ = 0; return 0; }
+Reactor_Logging_Server_Adapter<ACCEPTOR>::fini ()
+{ ((ACCEPTOR*)server_)->handle_close (); server_ = 0; return 0; }
template <class ACCEPTOR> int