summaryrefslogtreecommitdiff
path: root/py/modules/IcePy/ObjectAdapter.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2007-01-15 13:35:08 +0000
committerBenoit Foucher <benoit@zeroc.com>2007-01-15 13:35:08 +0000
commitb6e03acbaca81b45e6e3be64d68e6f6643cb5cb4 (patch)
tree2b60dc42aa777b084ac5a5f99052cfa3eaf919b6 /py/modules/IcePy/ObjectAdapter.cpp
parentRemoved -c committed by mistake (diff)
downloadice-b6e03acbaca81b45e6e3be64d68e6f6643cb5cb4.tar.bz2
ice-b6e03acbaca81b45e6e3be64d68e6f6643cb5cb4.tar.xz
ice-b6e03acbaca81b45e6e3be64d68e6f6643cb5cb4.zip
Fixed bug 1656
Diffstat (limited to 'py/modules/IcePy/ObjectAdapter.cpp')
-rw-r--r--py/modules/IcePy/ObjectAdapter.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/py/modules/IcePy/ObjectAdapter.cpp b/py/modules/IcePy/ObjectAdapter.cpp
index ecb384c624d..be4d95d0abd 100644
--- a/py/modules/IcePy/ObjectAdapter.cpp
+++ b/py/modules/IcePy/ObjectAdapter.cpp
@@ -594,18 +594,21 @@ adapterWaitForDeactivate(ObjectAdapterObject* self, PyObject* args)
self->deactivateThread = new AdapterInvokeThreadPtr(t);
t->start();
}
-
- bool done;
- {
- AllowThreads allowThreads; // Release Python's global interpreter lock during blocking calls.
- done = (*self->deactivateMonitor).timedWait(IceUtil::Time::milliSeconds(timeout));
- }
-
- if(!done)
- {
- Py_INCREF(Py_False);
- return Py_False;
- }
+
+ while(!self->deactivated)
+ {
+ bool done;
+ {
+ AllowThreads allowThreads; // Release Python's global interpreter lock during blocking calls.
+ done = (*self->deactivateMonitor).timedWait(IceUtil::Time::milliSeconds(timeout));
+ }
+
+ if(!done)
+ {
+ Py_INCREF(Py_False);
+ return Py_False;
+ }
+ }
}
assert(self->deactivated);