
18 Sep
2008
18 Sep
'08
11:49 a.m.
On Thu, 2008-09-18 at 10:33 +0100, Simon Marlow wrote:
Jonathan Cast wrote:
An OS thread (Linux/Plan 9) stores:
* Stack (definitely a stack pointer and stored registers (> 40 bytes on i686) and includes a special set of page tables on Plan 9) * FD set (even if it's the same as the parent thread, you need to keep a pointer to it * uid/euid/gid/egid (Plan 9 I think omits euid and egid) * Namespace (Plan 9 only; again, you need at least a pointer even if it's the same as the parent process) * Priority * Possibly other things I can't think of right now
A Concurrent Haskell thread stores:
* Stack * Allocation area (4KB)
Allocation areas are per-CPU, not per-thread.
Didn't know/didn't think through that. Thanks! jcc