<br><br><div class="gmail_quote">On Feb 12, 2008 10:38 PM, Igor Stasenko &lt;<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Btw, this problem concerns not only OpenGL canvas implementation.<br>Even with bitblt, some operations are not thread-safe.<br>And in general, what mechanisms you planning to add to SecureSqueak to<br>guarantee that some code will get exclusive access to functions of<br>
some device?<br><br>For instance, try:<br>10 timesRepeat: [<br> &nbsp; [ Smalltalk logChange: &#39;say goodbye to&#39; , 1 seconds asDelay wait<br>asString, &#39; your .changes file&#39; ] fork.<br><div><div></div><div class="Wj3C7c">
]<br></div></div></blockquote><div><br>The above is much more effectively achieved by starting up an image twice and saving code in each :-).<br><br>I&#39;ll have to handle each situation as I find them. Generally, I&#39;d have to make sure all APIs are thread safe. Also, remember that with Namespaces, an object only has access to a very limited set of other objects (in theory at least).<br>
<br>In the specific case of Canvas, I&#39;ll be using something which I still have to give a good name to -- maybe Gate, Proxy, Interface, or Valve or something. It will be an object that implements the public sub-set of Canvas&#39;s methods and forwards messages on for a particular clipping Rectangle on that Canvas. When permission to that Canvas is no longer required, the connection is broken and that Valve/Gate/Interface becomes useless. I&#39;m sure E-lang has a good name for these; its a pattern from programming with capabilities.<br>
</div></div><br>Gulik.<br clear="all"><br>-- <br><a href="http://people.squeakfoundation.org/person/mikevdg">http://people.squeakfoundation.org/person/mikevdg</a><br><a href="http://gulik.pbwiki.com/">http://gulik.pbwiki.com/</a>