summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortworm <tworm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-06 21:57:20 +0000
committertworm <tworm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-06 21:57:20 +0000
commit670bfaa9ed57e349f881ded168b1bb075f231615 (patch)
tree4bd68e16aabc5749bdfb9981b3143323eb8f8f1b
parent8ec2923a8ad225a7103eaabbc336526c588cda67 (diff)
downloadATCD-670bfaa9ed57e349f881ded168b1bb075f231615.tar.gz
Corrected error in try_lock
-rw-r--r--TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp12
-rw-r--r--TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp4
2 files changed, 13 insertions, 3 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp
index 0ef57051779..4438cc8e668 100644
--- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp
+++ b/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp
@@ -32,6 +32,7 @@ CC_Lock::~CC_Lock()
void CC_Lock::lock(CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_Lock::lock\n"));
lock_held_++;
int success = semaphore_.acquire();
if(success==-1) {
@@ -41,8 +42,11 @@ void CC_Lock::lock(CORBA::Environment &_env)
CORBA::Boolean CC_Lock::try_lock(CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_Lock::try_lock. "));
lock_held_++;
+ ACE_DEBUG((LM_DEBUG, "lock_held_: %i, ", lock_held_));
int success = semaphore_.tryacquire();
+ ACE_DEBUG((LM_DEBUG, "success: %i\n", success));
if(success==-1) {
if(errno==EBUSY) {
lock_held_--;
@@ -51,13 +55,14 @@ CORBA::Boolean CC_Lock::try_lock(CORBA::Environment &_env)
else
TAO_THROW_RETURN(CORBA::INTERNAL(CORBA::COMPLETED_NO), CORBA::B_FALSE);
}
- else {
- this->lock(_env);
- }
+ // else {
+ // this->lock(_env);
+ // }
}
void CC_Lock::unlock(CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_Lock::unlock\n"));
if(lock_held_==0)
TAO_THROW(CosConcurrencyControl::LockNotHeld);
int success = semaphore_.release();
@@ -70,6 +75,7 @@ void CC_Lock::unlock(CORBA::Environment &_env)
void CC_Lock::change_mode(CosConcurrencyControl::lock_mode new_mode,
CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_Lock::change_mode\n"));
// @@TAO Hmmm, we cannot really do anything at present since there is
// only one lock per lock set and that lock is essentially a write lock
if(lock_held_==0)
diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp
index a0bf9065291..d8d8385b5dc 100644
--- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp
+++ b/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp
@@ -51,6 +51,7 @@ CC_LockSet::~CC_LockSet(void)
void CC_LockSet::lock(CosConcurrencyControl::lock_mode mode,
CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_LockSet::lock\n"));
if(lock_==0) {
ACE_NEW(lock_, CC_Lock(mode));
if(errno==ENOMEM) {
@@ -73,6 +74,7 @@ void CC_LockSet::lock(CosConcurrencyControl::lock_mode mode,
CORBA::Boolean CC_LockSet::try_lock(CosConcurrencyControl::lock_mode mode,
CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_LockSet::try_lock\n"));
TAO_TRY {
return lock_->try_lock(_env);
}
@@ -87,6 +89,7 @@ CORBA::Boolean CC_LockSet::try_lock(CosConcurrencyControl::lock_mode mode,
void CC_LockSet::unlock(CosConcurrencyControl::lock_mode mode,
CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_LockSet::unlock\n"));
TAO_TRY {
lock_->unlock(_env);
}
@@ -102,6 +105,7 @@ void CC_LockSet::change_mode (CosConcurrencyControl::lock_mode held_mode,
CosConcurrencyControl::lock_mode new_mode,
CORBA::Environment &_env)
{
+ ACE_DEBUG((LM_DEBUG, "CC_LockSet::change_mode\n"));
TAO_TRY
{
lock_->change_mode(new_mode, _env);