diff options
author | Marc Laukien <marc@zeroc.com> | 2004-11-03 19:15:08 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-11-03 19:15:08 +0000 |
commit | cdec29d575f75fc699da40661f6b9a364c8c0fae (patch) | |
tree | 27125c42eea644f4ed9729d804c4dc838cf451f1 /cpp/src | |
parent | fix (diff) | |
download | ice-cdec29d575f75fc699da40661f6b9a364c8c0fae.tar.bz2 ice-cdec29d575f75fc699da40661f6b9a364c8c0fae.tar.xz ice-cdec29d575f75fc699da40661f6b9a364c8c0fae.zip |
fixes
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Glacier2/RouterI.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Glacier2/RouterI.h | 2 | ||||
-rw-r--r-- | cpp/src/Glacier2/SessionRouterI.cpp | 9 | ||||
-rw-r--r-- | cpp/src/Glacier2/SessionRouterI.h | 2 | ||||
-rw-r--r-- | cpp/src/IcePack/Makefile | 4 | ||||
-rw-r--r-- | cpp/src/IceStorm/Makefile | 4 |
6 files changed, 15 insertions, 8 deletions
diff --git a/cpp/src/Glacier2/RouterI.cpp b/cpp/src/Glacier2/RouterI.cpp index 1ac8510e9a8..25a4089f7ee 100644 --- a/cpp/src/Glacier2/RouterI.cpp +++ b/cpp/src/Glacier2/RouterI.cpp @@ -119,7 +119,7 @@ Glacier2::RouterI::createSession(const std::string&, const std::string&, const C } void -Glacier2::RouterI::destroySession(const Current&) +Glacier2::RouterI::destroySession_async(const AMD_Router_destroySessionPtr&, const Current&) { assert(false); // Must not be called in this router implementation. } diff --git a/cpp/src/Glacier2/RouterI.h b/cpp/src/Glacier2/RouterI.h index 7c091728334..7f2266208d5 100644 --- a/cpp/src/Glacier2/RouterI.h +++ b/cpp/src/Glacier2/RouterI.h @@ -34,7 +34,7 @@ public: virtual Ice::ObjectPrx getServerProxy(const Ice::Current&) const; virtual void addProxy(const Ice::ObjectPrx&, const Ice::Current&); virtual SessionPrx createSession(const std::string&, const std::string&, const Ice::Current&); - virtual void destroySession(const Ice::Current&); + virtual void destroySession_async(const AMD_Router_destroySessionPtr&, const ::Ice::Current&); ClientBlobjectPtr getClientBlobject() const; ServerBlobjectPtr getServerBlobject() const; diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp index 7b626abb3a5..97950a456c2 100644 --- a/cpp/src/Glacier2/SessionRouterI.cpp +++ b/cpp/src/Glacier2/SessionRouterI.cpp @@ -433,8 +433,9 @@ Glacier2::SessionRouterI::createSession(const std::string& userId, const std::st return session; } + void -Glacier2::SessionRouterI::destroySession(const Current& current) +Glacier2::SessionRouterI::destroySession_async(const AMD_Router_destroySessionPtr& cb, const Current& current) { RouterIPtr router; @@ -479,6 +480,12 @@ Glacier2::SessionRouterI::destroySession(const Current& current) } // + // We must send back a response before we close the connection. + // + cb->ice_response(); + current.con->close(false); + + // // We destroy the router outside the thread synchronization, to // avoid deadlocks. // diff --git a/cpp/src/Glacier2/SessionRouterI.h b/cpp/src/Glacier2/SessionRouterI.h index f38d711736d..5e9d9a085bd 100644 --- a/cpp/src/Glacier2/SessionRouterI.h +++ b/cpp/src/Glacier2/SessionRouterI.h @@ -39,7 +39,7 @@ public: virtual Ice::ObjectPrx getServerProxy(const Ice::Current&) const; virtual void addProxy(const Ice::ObjectPrx&, const Ice::Current&); virtual SessionPrx createSession(const std::string&, const std::string&, const Ice::Current&); - virtual void destroySession(const Ice::Current&); + virtual void destroySession_async(const AMD_Router_destroySessionPtr&, const ::Ice::Current&); RouterIPtr getRouter(const Ice::ConnectionPtr&) const; RouterIPtr getRouter(const std::string&) const; diff --git a/cpp/src/IcePack/Makefile b/cpp/src/IcePack/Makefile index 11b38c92211..5c6981a426c 100644 --- a/cpp/src/IcePack/Makefile +++ b/cpp/src/IcePack/Makefile @@ -95,8 +95,8 @@ SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IcePack $(ICECPPFLAGS) include $(top_srcdir)/config/Make.rules -CPPFLAGS := -I.. $(CPPFLAGS) -DICE_PACK_API_EXPORTS $(READLINE_FLAGS) -ICECPPFLAGS := -I.. $(ICECPPFLAGS) +CPPFLAGS := $(CPPFLAGS) -I.. -DICE_PACK_API_EXPORTS $(READLINE_FLAGS) +ICECPPFLAGS := $(ICECPPFLAGS) -I.. SLICE2CPPFLAGS := --checksum --ice --include-dir IcePack --dll-export ICE_PACK_API $(SLICE2CPPFLAGS) LINKWITH := -lIceBox -lIce -lIceUtil diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile index c052ea43808..38bbb6ca15c 100644 --- a/cpp/src/IceStorm/Makefile +++ b/cpp/src/IceStorm/Makefile @@ -65,8 +65,8 @@ SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceStorm $(ICECPPFLAGS) include $(top_srcdir)/config/Make.rules -CPPFLAGS := -I.. $(CPPFLAGS) -DICE_STORM_API_EXPORTS $(READLINE_FLAGS) -ICECPPFLAGS := -I.. $(ICECPPFLAGS) +CPPFLAGS := $(CPPFLAGS) -I.. -DICE_STORM_API_EXPORTS $(READLINE_FLAGS) +ICECPPFLAGS := $(ICECPPFLAGS) -I.. SLICE2CPPFLAGS := --checksum --ice --dll-export ICE_STORM_API --include-dir IceStorm $(SLICE2CPPFLAGS) LINKWITH := -lIce -lIceUtil SVCLINKWITH := -lFreeze -lIce -lIceUtil |