Skip to content
Snippets Groups Projects
Commit 313a61d5 authored by Simon Marlow's avatar Simon Marlow
Browse files

[project @ 2000-04-12 17:33:16 by simonmar]

This commit fixes the trace/stderr problem, and also fixes some other
problems with the I/O library.

	- handles now contain a list of free buffers, which are
	  guaranteed to be the same size as the primary handle buffer.

	- hPutStr now doesn't evaluate any part of the input string with
	  the handle locked.  Instead, it acquires a buffer from the handle
	  copies characters into it, then commits the buffer.  This is
	  better for concurrency too, because the handle is only locked
	  while we're actually reading/writing, not while evaluating.

	- there were an even number of off-by-one errors in the I/O system
	  which compensated for each other.  This has been fixed.

	- made the I/O subsystem a little more exception-safe.  It still
	  isn't totally exception-safe, but I can't face doing that
	  without a complete rewrite of this thing in Haskell.

	- add hPutBufFull and hGetBufFull.  The compiler probably needs to
	  be updated to use these too.
parent f016aea1
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment