External Plugin returning too quickly
Bert Freudenberg
bert at impara.de
Mon Nov 21 09:21:28 UTC 2005
Am 21.11.2005 um 02:28 schrieb Brad Fuller:
> Bert Freudenberg wrote:
>>
>> Did you wrap the usleep() into a while loop checking for EINTR?
> googling, I found many instances of usleep to be a problem in
> multithreading. One place said usleep sets an alarm signal to wait.
> When it occurs, usleep returns. SIGALRM should not be blocked and
> if it is, usleep will exit. This was my problem.
>
> I abandoned usleep and instead tried nanosleep. The result was the
> same - I heard just a blip.
> So, I wrapped the call to nanosleep with blocking the signals with
> pthread_sigmask(), called nanosleep and then unblocked the signals.
> This worked.
>
> But, I don't know why. I still don't understand how this would
> effect the call to the library from Squeak and not as a standalone.
> What is different, or added, with Squeak that is not with the
> standalone test?
Squeak uses SIGALARM itself, unless you run the VM with -notimer.
Which you should not do unless you do not care about performance.
- Bert -
More information about the Vm-dev
mailing list