From 91716f766a12ed5551bfc307bc55f8f3573227ae Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 29 Jul 2008 17:10:15 +0000 Subject: [PATCH] Make mutex exception classes derive from std::exception. --- src/libCom/osi/epicsMutex.cpp | 29 ++++++++++++++++++++++++++++- src/libCom/osi/epicsMutex.h | 4 ++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/libCom/osi/epicsMutex.cpp b/src/libCom/osi/epicsMutex.cpp index 4ee42748d..178fe2937 100644 --- a/src/libCom/osi/epicsMutex.cpp +++ b/src/libCom/osi/epicsMutex.cpp @@ -50,7 +50,34 @@ struct epicsMutexParm { }; STATIC epicsMutexOSD * epicsMutexGlobalLock; - + + +// vxWorks 5.4 gcc fails during compile when I use std::exception +using namespace std; + +// exception payload +class epicsMutex::mutexCreateFailed : public exception +{ + const char * what () const throw (); +}; + +const char * epicsMutex::mutexCreateFailed::what () const throw () +{ + return "epicsMutex::mutexCreateFailed()"; +} + +// exception payload +class epicsMutex::invalidMutex : public exception +{ + const char * what () const throw (); +}; + +const char * epicsMutex::invalidMutex::what () const throw () +{ + return "epicsMutex::invalidMutex()"; +} + + epicsMutexId epicsShareAPI epicsMutexOsiCreate( const char *pFileName,int lineno) { diff --git a/src/libCom/osi/epicsMutex.h b/src/libCom/osi/epicsMutex.h index c1dfae134..4b32668fb 100644 --- a/src/libCom/osi/epicsMutex.h +++ b/src/libCom/osi/epicsMutex.h @@ -25,8 +25,8 @@ typedef enum { class epicsShareClass epicsMutex { public: - class mutexCreateFailed {}; /* exception */ - class invalidMutex {}; /* exception */ + class mutexCreateFailed; /* exception payload */ + class invalidMutex; /* exception payload */ epicsMutex (); ~epicsMutex (); void show ( unsigned level ) const;