blob: 563dbc2c577e07bfde504dd4147ce26fe3e11926 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
//
// $Id$
//
#include "Hello.h"
#include "ace/ACE.h"
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_;
}
|