diff options
author | Bernard Normier <bernard@zeroc.com> | 2003-06-02 18:03:38 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2003-06-02 18:03:38 +0000 |
commit | e1d353c76161651ffc4db678ff4bbe31f87e967d (patch) | |
tree | bb45cb2977c11a95453ebc66ab26a20e436b0c5b /cpp/src/IceUtil/CtrlCHandler.cpp | |
parent | Mapping change for Ice::Byte from char to unsigned char -- Windows-specific (diff) | |
download | ice-e1d353c76161651ffc4db678ff4bbe31f87e967d.tar.bz2 ice-e1d353c76161651ffc4db678ff4bbe31f87e967d.tar.xz ice-e1d353c76161651ffc4db678ff4bbe31f87e967d.zip |
Merged from R1_1_branch
Diffstat (limited to 'cpp/src/IceUtil/CtrlCHandler.cpp')
-rw-r--r-- | cpp/src/IceUtil/CtrlCHandler.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/CtrlCHandler.cpp b/cpp/src/IceUtil/CtrlCHandler.cpp index 9c7c53220dc..d77dd20744d 100644 --- a/cpp/src/IceUtil/CtrlCHandler.cpp +++ b/cpp/src/IceUtil/CtrlCHandler.cpp @@ -130,6 +130,14 @@ sigwaitThread(void*) { int signal = 0; int rc = sigwait(&ctrlCLikeSignals, &signal); + // + // Some sigwait() implementations incorrectly return EINTR + // when interrupted by an unblocked caught signal + // + if(rc == EINTR) + { + continue; + } assert(rc == 0); rc = pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, 0); |