diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-10-10 12:03:07 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-10-10 12:03:07 +0200 |
commit | 570455a381e6620f8ddfcca448559d3fa545ba38 (patch) | |
tree | fe3fa45e6a643b473d9370babff6224b1a9d4dcb /py/modules/IcePy/Operation.cpp | |
parent | Fixed ICE-5726: provide deprecated public StringConverterPlugin (diff) | |
download | ice-570455a381e6620f8ddfcca448559d3fa545ba38.tar.bz2 ice-570455a381e6620f8ddfcca448559d3fa545ba38.tar.xz ice-570455a381e6620f8ddfcca448559d3fa545ba38.zip |
Fixed invocation timeouts/interrupt issues, addded AsyncResult.cancel()
Diffstat (limited to 'py/modules/IcePy/Operation.cpp')
-rw-r--r-- | py/modules/IcePy/Operation.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/py/modules/IcePy/Operation.cpp b/py/modules/IcePy/Operation.cpp index ac5221029fd..740a8ff8902 100644 --- a/py/modules/IcePy/Operation.cpp +++ b/py/modules/IcePy/Operation.cpp @@ -24,7 +24,7 @@ #include <Ice/LocalException.h> #include <Ice/Logger.h> #include <Ice/ObjectAdapter.h> -#include <Ice/OutgoingAsync.h> +#include <Ice/AsyncResult.h> #include <Ice/Properties.h> #include <Ice/Proxy.h> #include <Slice/PythonUtil.h> @@ -814,6 +814,25 @@ asyncResultGetCommunicator(AsyncResultObject* self) extern "C" #endif static PyObject* +asyncResultCancel(AsyncResultObject* self) +{ + try + { + (*self->result)->cancel(); + } + catch(...) + { + assert(false); + } + + Py_INCREF(Py_None); + return Py_None; +} + +#ifdef WIN32 +extern "C" +#endif +static PyObject* asyncResultGetConnection(AsyncResultObject* self) { if(self->connection) @@ -1255,6 +1274,8 @@ static PyMethodDef AMDCallbackMethods[] = static PyMethodDef AsyncResultMethods[] = { + { STRCAST("cancel"), reinterpret_cast<PyCFunction>(asyncResultCancel), METH_NOARGS, + PyDoc_STR(STRCAST("cancels the invocation")) }, { STRCAST("getCommunicator"), reinterpret_cast<PyCFunction>(asyncResultGetCommunicator), METH_NOARGS, PyDoc_STR(STRCAST("returns the communicator for the invocation")) }, { STRCAST("getConnection"), reinterpret_cast<PyCFunction>(asyncResultGetConnection), METH_NOARGS, |