Date: Mon, 24 Sep 2001 07:11:10 -0500 From: David Leimbach <Leimy2k@mac.com> To: freebsd-questions@FreeBSD.ORG Subject: Re: pthread_cond_signal question Message-ID: <200109241211.FAA17075@smtpout.mac.com> In-Reply-To: <200109240233.f8O2XV003913@home.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Sunday, September 23, 2001, at 09:33 PM, mcbrune wrote:
> Yes, I believe you are correct. The call to pthread_cond_signal will
> not unblock
> a thread that is not waiting, and it does not pend the signal either.
>
Correct... if nothing is waiting on the signal before the signal is
issued, that signal is completely discarded.
That means this is NOT a FreeBSD limitation. Its just adhering to the
POSIX standard.
Try a semaphore instead perhaps. sem_wait, sem_post, sem_init man pages
should have more info.
>
> Corey
>
>
>> Hello All,
>> I hope that you can help me decifer the pthread and
>> pthread_cond_signal man pages.
>>
>>
>> -The pthread man page for pthread_cond_signal says:
>> int pthread_cond_signal(pthread_cond_t *cond)
>> Unblock at least one of the threads blocked on the
>> specified condition variable.
>>
>> -And the pthread_cond_signal man page says:
>> DESCRIPTION
>> The pthread_cond_signal() function unblocks one thread waiting
>> for the condition variable cond.
>>
>>
>> All is fine if there is at least on thread waiting on the
>> condition variable. However, if there are no threads waiting, then
>> the call does not unblock a thread -- this is the behavior that I want
>> but it differs from the man page. Can I rely on this behavior or am I
>> missing something subtle?
>>
>> Thanks,
>> --Mat
>>
>> To Unsubscribe: send mail to majordomo@FreeBSD.org
>> with "unsubscribe freebsd-questions" in the body of the message
>>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
[-- Attachment #2 --]
On Sunday, September 23, 2001, at 09:33 PM, mcbrune wrote:
<excerpt>Yes, I believe you are correct. The call to
pthread_cond_signal will not unblock
a thread that is not waiting, and it does not pend the signal either.
</excerpt>Correct... if nothing is waiting on the signal before the
signal is issued, that signal is completely discarded.
That means this is NOT a FreeBSD limitation. Its just adhering to the
POSIX standard.
Try a semaphore instead perhaps. sem_wait, sem_post, sem_init man
pages should have more info.
<color><param>0000,0000,DEB7</param>
</color><excerpt>
Corey
<excerpt>Hello All,
I hope that you can help me decifer the pthread and
pthread_cond_signal man pages.
-The pthread man page for pthread_cond_signal says:
int pthread_cond_signal(pthread_cond_t *cond)
Unblock at least one of the threads blocked on the
specified condition variable.
-And the pthread_cond_signal man page says:
DESCRIPTION
The pthread_cond_signal() function unblocks one thread waiting
for the condition variable cond.
All is fine if there is at least on thread waiting on the
condition variable. However, if there are no threads waiting, then
the call does not unblock a thread -- this is the behavior that I want
but it differs from the man page. Can I rely on this behavior or am I
missing something subtle?
Thanks,
--Mat
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
</excerpt>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
</excerpt>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109241211.FAA17075>
