Ivan Volosyuk wrote:
On 10/20/06, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:


Ivan Volosyuk wrote:
> Well, I think that the solution is what Geir suggests. One think which
> bothers me is following. EINTR can happen in different places and the
> situations can be quite rare in some circumstances. It can lead to
> hard to reproduce stability bugs (race conditions).

Can you give an example?

Half a year ago, I was working on the problem. Socket operations get
sometimes interrupted. We have found out that it occurs sometime after
GC. It was not quite easy as the application was quite big and
situation - quite rare.

I believe it is rare, but if the code deals with EINTR correctly, where can the race conditions come from?


Given the fact, that current implementation of monitor reservation
code can stop other thread in quite random fashion we should have rock
solid support of EINTR handling everywhere the select(), poll() calls
is used.

Well... yeah.  Not bury it.

geir


Reply via email to