* thread.c (lock_func): small cleanup.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kosaki 2011-04-29 01:18:11 +00:00
Родитель 32ae0ae1c2
Коммит 6998f013ab
2 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Fri Apr 29 10:17:42 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* thread.c (lock_func): small cleanup.
Fri Apr 29 10:07:13 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* thread.c (rb_mutex_lock, lock_func): Avoid busy loop and

Просмотреть файл

@ -3235,10 +3235,15 @@ lock_func(rb_thread_t *th, mutex_t *mutex, int timeout_ms)
native_mutex_lock(&mutex->lock);
th->transition_for_lock = 0;
while (mutex->th || (mutex->th = th, 0)) {
for (;;) {
struct timespec ts;
int ret;
if (!mutex->th) {
mutex->th = th;
break;
}
mutex->cond_waiting++;
if (timeout_ms) {
ts = init_lock_timeout(timeout_ms);