[asterisk-bugs] [JIRA] Updated: (ASTERISK-20240) Incorrect work of __ast_rwlock_timed[rd|wr]lock() functions on OpenBSD

Egor Gorlin (JIRA) noreply at issues.asterisk.org
Fri Aug 17 10:54:07 CDT 2012


     [ https://issues.asterisk.org/jira/browse/ASTERISK-20240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Gorlin updated ASTERISK-20240:
-----------------------------------

    Attachment:     (was: lock.c.patch)

> Incorrect work of __ast_rwlock_timed[rd|wr]lock() functions on OpenBSD
> ----------------------------------------------------------------------
>
>                 Key: ASTERISK-20240
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20240
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/Portability
>         Environment: Open BSD, Mac OS X and similar
>            Reporter: Egor Gorlin
>         Attachments: lock.c.patch
>
>
> I faced problem with {{pthread_rwlock_timed\[rd|wr\]lock()}} in my project: these functions are not implemented on OpenBSD/MacOS and similar systems.
> Luckily i found the solution in Asterisk (dev/Asterisk/main/lock.c) but it seems to be implemented incorrectly.
> In {{pthread_rwlock_timed\[rd|wr\]lock()}} second argument is {{const struct timespec *abs_timeout}}, which represents time since UNIX epoch till timeout.
> In {{__ast_rwlock_timed\[rd|wr\]lock()}} implementation for OpenBSD this argument is treated as relative timeout:
> difference between {{ast_tvnow()}} and {{struct timeval _start}} is compared to {{abs_timeout}}. That's incorrect.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list