Changeset 30849 in webkit for trunk/JavaScriptCore/wtf
- Timestamp:
- Mar 6, 2008, 10:55:02 AM (17 years ago)
- Location:
- trunk/JavaScriptCore/wtf
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/Threading.h
r30842 r30849 159 159 160 160 void wait(Mutex& mutex); 161 // Returns true if the condition was signaled before the timeout, false if the timeout was reached 162 bool timedWait(Mutex&, double interval); 161 163 void signal(); 162 164 void broadcast(); -
trunk/JavaScriptCore/wtf/ThreadingGtk.cpp
r30842 r30849 177 177 } 178 178 179 bool ThreadCondition::timedWait(Mutex& mutex, double interval) 180 { 181 if (interval < 0.0) { 182 wait(mutex); 183 return true; 184 } 185 186 int intervalSeconds = static_cast<int>(interval); 187 int intervalMicroseconds = static_cast<int>((interval - intervalSeconds) * 1000000.0); 188 189 GTimeVal targetTime; 190 g_get_current_time(&targetTime); 191 192 targetTime.tv_sec += intervalSeconds; 193 targetTime.tv_usec += intervalMicroseconds; 194 if (targetTime.tv_usec > 1000000) { 195 targetTime.tv_usec -= 1000000; 196 targetTime.tv_sec++; 197 } 198 199 return g_cond_timedwait(m_condition, mutex.impl(), &targetTime); 200 } 201 179 202 void ThreadCondition::signal() 180 203 { -
trunk/JavaScriptCore/wtf/ThreadingNone.cpp
r30842 r30849 48 48 ThreadCondition::~ThreadCondition() {} 49 49 void ThreadCondition::wait(Mutex& mutex) {} 50 bool ThreadCondition::timedWait(Mutex& mutex, double interval) { return false; } 50 51 void ThreadCondition::signal() {} 51 52 void ThreadCondition::broadcast() {} -
trunk/JavaScriptCore/wtf/ThreadingPthreads.cpp
r30842 r30849 33 33 34 34 #include <errno.h> 35 #include <time.h> 35 36 36 37 namespace WTF { … … 185 186 ASSERT(false); 186 187 } 187 188 189 bool ThreadCondition::timedWait(Mutex& mutex, double interval) 190 { 191 if (interval < 0.0) { 192 wait(mutex); 193 return true; 194 } 195 196 int intervalSeconds = static_cast<int>(interval); 197 int intervalMicroseconds = static_cast<int>((interval - intervalSeconds) * 1000000.0); 198 199 // Current time comes in sec/microsec 200 timeval currentTime; 201 gettimeofday(¤tTime, NULL); 202 203 // Target time comes in sec/nanosec 204 timespec targetTime; 205 targetTime.tv_sec = currentTime.tv_sec + intervalSeconds; 206 targetTime.tv_nsec = (currentTime.tv_usec + intervalMicroseconds) * 1000; 207 if (targetTime.tv_nsec > 1000000000) { 208 targetTime.tv_nsec -= 1000000000; 209 targetTime.tv_sec++; 210 } 211 212 return pthread_cond_timedwait(&m_condition, &mutex.impl(), &targetTime) == 0; 213 } 214 188 215 void ThreadCondition::signal() 189 216 { -
trunk/JavaScriptCore/wtf/ThreadingWin.cpp
r30842 r30849 284 284 285 285 ::EnterCriticalSection (&cs.m_internalMutex); 286 } 287 288 bool ThreadCondition::timedWait(Mutex& mutex, double interval) 289 { 290 // Empty for now 291 ASSERT(false); 286 292 } 287 293
Note:
See TracChangeset
for help on using the changeset viewer.