Dave Matthews,

I am building a thread manager for the .NET CLR that emulates your threading 
model in Poly ML   I am a little confused by a couple of issues in your file 
Basis/Thread.Sml

You have a set of associated types declared as such


datatype threadAttribute =
            EnableBroadcastInterrupt of bool
        |   InterruptState of interruptState

        and interruptState =
            InterruptDefer
        |   InterruptSynch
        |   InterruptAsynch
        |   InterruptAsynchOnce



You then create functions for writing these into a tuple of words as bit flags
With the following mapping

1 -> InterruptDefer
2 -> InterruptSynch
4 -> InterruptAsynch
6 -> InterruptAsynchOnce


And then mapping the lowest bit of the other word in the tuple to the flag in 
EnableBroadcastInterrupt

My questions are

1.       What is the semantics of these flags as related to the behavior of 
threads and the Interrupt signal?

2.       Can a single word be used to model these flags thusly (see below)  
given that I am using a completely different runtime than what you are calling 
into?
1 -> InterruptDefer
2 -> InterruptSynch
4 -> InterruptAsynch
6 -> InterruptAsynchOnce
8  ->   BroadcastInterrupt


I now you don't get many questions from people working with the CLR so I 
appreciate your patience

David Thayer

_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to