This is the mail archive of the guile@cygnus.com mailing list for the guile project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
> If I understand what you're describing, RScheme does essentially just > that. The problems I've noticed are (1) it makes thread switches > expensive (unwinding the fluids in the departing thread and rewinding them > in the starting thread), and (2) it is impossible to use kernel (OS) > threads. I have just implemented fluid-let as I described in Kawa (i.e. under the Java VM), which suggests it can be made to work under kernel threads. The implementation model you describe is not what I would recommend. The only the support you need from the thread system is some way to provide per-thread data. This does not need be more than a single per-thread pointer, which can point to either the thread's dynamic chain, or the per-thread Environment table. Alternativly, if there is a getCurrentThread primitive, you can use that as an index in a hashtable and get the dynamic chain or Environment object that way. --Per Bothner Cygnus Solutions bothner@cygnus.com http://www.cygnus.com/~bothner