On 01/31/2011 01:19 PM, Jan Kiszka wrote:
On 2011-01-31 10:44, Avi Kivity wrote:
> On 01/27/2011 03:09 PM, Jan Kiszka wrote:
>> If we call qemu_cpu_kick more than once before the target was able to
>> process the signal, pthread_kill will fail, and qemu will abort. Prevent
>> this by avoiding the redundant signal.
>>
>
> Doesn't fit with the manual page (or with the idea that signals are
> asynchronous):
>
> NAME
> pthread_kill - send a signal to a thread
>
>
> ...
>
> ERRORS
> ESRCH No thread with the ID thread could be found.
>
> EINVAL An invalid signal was specified.
>
Valid remark, but I was receiving EAGAIN for blocked RT signals. Don't
know if this is Linux-specific. A quick glance at the man pages did not
reveal if this is allowed or at least gray area.
} else if (!is_si_special(info)) {
if (sig >= SIGRTMIN && info->si_code != SI_USER) {
/*
* Queue overflow, abort. We may abort if the
* signal was rt and sent by user using something
* other than kill().
*/
trace_signal_overflow_fail(sig, group, info);
return -EAGAIN;
}
However, even when selectively ignoring this, it's more efficient to
catch the redundant signaling in user space.
Yes.
--
error compiling committee.c: too many arguments to function