summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorSuper User2008-04-12 18:24:31 +0200
committerSuper User2008-04-12 18:24:31 +0200
commitda21ec0158f0be010a75d42c058fdc8891498b2d (patch)
treecab1da3278e2161386568f405d9fad504c7bb160 /main.c
parentsocket api work (diff)
downloadlcr-da21ec0158f0be010a75d42c058fdc8891498b2d.tar.gz
lcr-da21ec0158f0be010a75d42c058fdc8891498b2d.tar.xz
lcr-da21ec0158f0be010a75d42c058fdc8891498b2d.zip
work on socket
modified: bchannel.c modified: dss1.cpp modified: dss1.h modified: mISDN.cpp modified: mISDN.h modified: main.c modified: main.h modified: q931.h modified: trace.h
Diffstat (limited to 'main.c')
-rw-r--r--main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/main.c b/main.c
index 24c0039..8fe35a7 100644
--- a/main.c
+++ b/main.c
@@ -40,6 +40,7 @@ struct lcr_fdset lcr_fdset[FD_SETSIZE];
pthread_mutex_t mutexd; // debug output mutex
//pthread_mutex_t mutext; // trace output mutex
pthread_mutex_t mutexe; // error output mutex
+pthread_mutex_t mutex_lcr; // lcr process mutex
int memuse = 0;
int mmemuse = 0;
@@ -215,6 +216,9 @@ int main(int argc, char *argv[])
memset(lcr_fdset, 0, sizeof(lcr_fdset));
#endif
+ /* lock LCR process */
+ pthread_mutex_lock(&mutex_lcr);
+
/* current time */
GET_NOW();
@@ -469,6 +473,7 @@ int main(int argc, char *argv[])
quit = 0;
while(!quit)
{
+
last_d = now_d;
GET_NOW();
if (now_d-last_d > 1.0)
@@ -643,7 +648,9 @@ BUDETECT
/* did we do nothing? so we wait to give time to other processes */
if (all_idle)
{
+ pthread_mutex_unlock(&mutex_lcr); // unlock LCR
debug_usleep(4000, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
+ pthread_mutex_lock(&mutex_lcr); // lock LCR
idletime += 4000;
}
}
@@ -770,6 +777,9 @@ free:
MEMCHECK("file descriptor(s) left",fduse)
MEMCHECK("file handler(s) left",fhuse)
+ /* unlock LCR process */
+ pthread_mutex_unlock(&mutex_lcr);
+
/* take me out */
return(ret);
}