You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2007/11/12 16:13:50 UTC
[jira] Resolved: (HARMONY-5106) [drlvm][thread]
os_thread_yield_other() works incorrectly on Linux
[ https://issues.apache.org/jira/browse/HARMONY-5106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky resolved HARMONY-5106.
----------------------------------------
Resolution: Fixed
Patch is applied at 594171. Please check that the bug is fixed for you.
> [drlvm][thread] os_thread_yield_other() works incorrectly on Linux
> ------------------------------------------------------------------
>
> Key: HARMONY-5106
> URL: https://issues.apache.org/jira/browse/HARMONY-5106
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Linux
> Reporter: Ilya Berezhniuk
> Assignee: Gregory Shimansky
> Attachments: H-5106.patch, H-5106.patch
>
>
> os_thread_yield_other() function on Linux uses sem_timedwait() to wait for response from SIGUSR2 handler.
> It passes time interval =1ms to sem_timedwait(), but by documentation sem_timedwait() receives not time interval, but absolute time since 1970, so now sem_timedwait() always returns ETIMEDOUT immediately.
> It's required to calculate timeout exceed absolute time by adding needed interval to current time returned by gettimeofday() or clock_gettime(CLOCK_REALTIME).
> I've tried clock_gettime(CLOCK_REALTIME), it works fine.
> I'm going to provide a patch soon.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.