diff options
Diffstat (limited to 'ACE/TAO/tests/Bug_1482_Regression/Hello.cpp')
-rw-r--r-- | ACE/TAO/tests/Bug_1482_Regression/Hello.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ACE/TAO/tests/Bug_1482_Regression/Hello.cpp b/ACE/TAO/tests/Bug_1482_Regression/Hello.cpp new file mode 100644 index 00000000000..c08ad59c653 --- /dev/null +++ b/ACE/TAO/tests/Bug_1482_Regression/Hello.cpp @@ -0,0 +1,47 @@ +// +// $Id$ +// +#include "Hello.h" +#include "ace/ACE.h" + + +ACE_RCSID (Bug_1482_Regression, + Hello, + "$Id$") + + +Hello::Hello (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) + , mutex_ () + , latest_prime_ (0) +{ +} + +CORBA::ULong +Hello::next_prime (void) +{ + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + ace_mon, + this->mutex_, + this->latest_prime_); + + if (this->latest_prime_ > 10000) + ACE_OS::abort (); + + for (CORBA::Long ind = 0; + ind != 400; + ++ind) + { + CORBA::Short bc = 0; + + while (bc == 0) + { + if (ACE::is_prime (++this->latest_prime_, + 2, + this->latest_prime_/2) == 0) + bc = 1; + } + } + + return this->latest_prime_; +} |