aboutsummaryrefslogtreecommitdiff
path: root/src/stable/condition.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/stable/condition.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/stable/condition.cpp b/src/stable/condition.cpp
index 79af262..f02eca7 100644
--- a/src/stable/condition.cpp
+++ b/src/stable/condition.cpp
@@ -11,39 +11,39 @@
11 11
12Bu::Condition::Condition() 12Bu::Condition::Condition()
13{ 13{
14 pthread_cond_init( &cond, NULL ); 14 pthread_cond_init( &cond, NULL );
15} 15}
16 16
17Bu::Condition::~Condition() 17Bu::Condition::~Condition()
18{ 18{
19 pthread_cond_destroy( &cond ); 19 pthread_cond_destroy( &cond );
20} 20}
21 21
22int Bu::Condition::wait() 22int Bu::Condition::wait()
23{ 23{
24 return pthread_cond_wait( &cond, &mutex ); 24 return pthread_cond_wait( &cond, &mutex );
25} 25}
26 26
27int Bu::Condition::wait( int nSec, int nUSec ) 27int Bu::Condition::wait( int nSec, int nUSec )
28{ 28{
29 struct timeval now; 29 struct timeval now;
30 struct timespec timeout; 30 struct timespec timeout;
31 struct timezone tz; 31 struct timezone tz;
32 32
33 gettimeofday( &now, &tz ); 33 gettimeofday( &now, &tz );
34 timeout.tv_sec = now.tv_sec + nSec + ((now.tv_usec + nUSec)/1000000); 34 timeout.tv_sec = now.tv_sec + nSec + ((now.tv_usec + nUSec)/1000000);
35 timeout.tv_nsec = ((now.tv_usec + nUSec)%1000000)*1000; 35 timeout.tv_nsec = ((now.tv_usec + nUSec)%1000000)*1000;
36 36
37 return pthread_cond_timedwait( &cond, &mutex, &timeout ); 37 return pthread_cond_timedwait( &cond, &mutex, &timeout );
38} 38}
39 39
40int Bu::Condition::signal() 40int Bu::Condition::signal()
41{ 41{
42 return pthread_cond_signal( &cond ); 42 return pthread_cond_signal( &cond );
43} 43}
44 44
45int Bu::Condition::broadcast() 45int Bu::Condition::broadcast()
46{ 46{
47 return pthread_cond_broadcast( &cond ); 47 return pthread_cond_broadcast( &cond );
48} 48}
49 49