X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fcondition.C;h=6bd8169e4a4a5e31be0b98b6973543bd293d4f7e;hb=ccd23c15fae578be22d48b1a1e8b09cb43d593ae;hp=f45a9cd8785decfbe77f91f8a4776e0231333ba4;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/condition.C b/cinelerra-5.1/guicast/condition.C index f45a9cd8..6bd8169e 100644 --- a/cinelerra-5.1/guicast/condition.C +++ b/cinelerra-5.1/guicast/condition.C @@ -2,26 +2,24 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ -#ifndef NO_GUICAST #include "bcsignals.h" -#endif #include "condition.h" #include @@ -34,6 +32,7 @@ Condition::Condition(int init_value, const char *title, int is_binary) { this->is_binary = is_binary; this->title = title; + this->trace = 0; pthread_mutex_init(&mutex, 0); pthread_cond_init(&cond, NULL); this->value = this->init_value = init_value; @@ -43,9 +42,7 @@ Condition:: ~Condition() { pthread_cond_destroy(&cond); pthread_mutex_destroy(&mutex); -#ifndef NO_GUICAST UNSET_ALL_LOCKS(this); -#endif } void Condition::reset() @@ -54,19 +51,17 @@ void Condition::reset() pthread_mutex_destroy(&mutex); pthread_mutex_init(&mutex, 0); pthread_cond_init(&cond, NULL); + UNSET_ALL_LOCKS(this); value = init_value; + trace = 0; } void Condition::lock(const char *location) { -#ifndef NO_GUICAST SET_LOCK(this, title, location); -#endif pthread_mutex_lock(&mutex); while(value <= 0) pthread_cond_wait(&cond, &mutex); -#ifndef NO_GUICAST UNSET_LOCK2 -#endif if(is_binary) value = 0; else @@ -77,9 +72,7 @@ void Condition::lock(const char *location) void Condition::unlock() { // The lock trace is created and removed by the acquirer -//#ifndef NO_GUICAST // UNSET_LOCK(this); -//#endif pthread_mutex_lock(&mutex); if(is_binary) value = 1; @@ -93,9 +86,7 @@ int Condition::timed_lock(int microseconds, const char *location) { int result = 0; -#ifndef NO_GUICAST SET_LOCK(this, title, location); -#endif pthread_mutex_lock(&mutex); struct timeval now; @@ -131,9 +122,7 @@ int Condition::timed_lock(int microseconds, const char *location) } #endif -#ifndef NO_GUICAST UNSET_LOCK2 -#endif //printf("Condition::timed_lock 2 %d %s %s\n", result, title, location); if( !result ) { if(is_binary)