| 261 | } |
| 262 | |
| 263 | void host_thread_wait(int ms) |
| 264 | { |
| 265 | constexpr int SCHED_WAIT{2}; |
| 266 | if(ms >= 0 && ms <= SCHED_WAIT) { |
| 267 | return; |
| 268 | } |
| 269 | #ifdef __WIN32 |
| 270 | WaitForSingleObject(host_thread_semaphore, (ms < 0) ? INFINITE : ms - SCHED_WAIT); |
| 271 | #else |
| 272 | if(ms < 0) { |
| 273 | host_thread_semaphore.wait(); |
| 274 | } else if(ms > SCHED_WAIT) { |
| 275 | host_thread_semaphore.timedwait((ms - SCHED_WAIT) * 1000); |
| 276 | } |
| 277 | #endif |
| 278 | } |
| 279 | |
| 280 | void host_thread_kick() |
| 281 | { |