Hi Andy,

> ...
> This change fixed the crashes I was seeing, but it slows down port
> operations.  For an intel chip from a couple years ago the slowdown was
> something on the order of 3x, for a tight putchar() loop; for Loongson
> it could be as bad as 26x.  Mark was unhappy with this.

I agree with Mark here, especially because it slows down port operation even for
single threaded code.

>   But there are situations where this is not enough and there are also
>   situations where this is not wanted...

Indeed.

> One possible alternate solution would be to expose ports more to Scheme
> and so to make it easier and safer for Scheme to manipulate port data.
> This would also make it possible to implement coroutines in Scheme that
> yield when IO would block.

Not only does it sounds the best approach, but I can't see drawbacks, is there 
any?
I am in favor of this solution: in the end, only the user knows, and the way 
Mark
resumed this in his email is perfect [the last 3 paragraphs]

> Or, we could just make stdio/stderr be locked by default, and some other
> things not.  Seems squirrely to me though.

I would not do that, even for these ports, I'd leave them under the user
locking responsiblity.

Cheers,
David

Attachment: pgpSUU_AcZpHC.pgp
Description: OpenPGP digital signature

Reply via email to